title: Could C++ concepts be used to implement mixed type min and max in C++?
body: <p>As you may know <code>std::max</code> and <code>std::min</code> &quot;suffer&quot; from the fact they have 1 template argument, so even simple <code>max(container.size(), 47)</code> will not work since .size() returns <code>size_t</code> and 47 is <code>int</code>.</p>
  <p>I know there was historically <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2199.html" rel="nofollow noreferrer">proposal</a> to add proper overloads to C++ but it was rejected.
  But from what I know it was mostly due to paper being too complex for not enough gain, so I wonder if one would use <code>std::common_range_t</code> as return value (invented type trait that gives you int/float big enough to hold the min/max of mixed arguments, else hard error) would that be fine...</p>
  <p>So to finally get to my question:
  If we want min/max extended to take 2 template arguments as described above are there any backward compatibility or any other issues that prevent that?</p>
  <p>note:</p>
  <ul>
  <li>This is mostly is it technically possible question, I am <strong>not</strong> interested if WG21 plans to do anything to standardize this, mostly curious about potential technical limitations.</li>
  <li><a href="https://stackoverflow.com/questions/47397997/is-it-possible-to-create-a-better-version-of-stdmin-stdmax">C++17 version of this question</a>(for some reason heavily downvoted ), but more general, also deals with some other limitations.</li>
  </ul>