title: integral_constants in ternary operator
body: <p>MSVC and clang/gcc disagree on whether two different integral constants can be used in a ternary operator (and as a consequence whether they have a <code>common_type</code>):</p>
  
  <pre><code>#include &lt;utility&gt;
  
  int main()
  {
      return false
          ? std::integral_constant&lt;int, 1&gt;() 
          : std::integral_constant&lt;int, 2&gt;();
  }
  </code></pre>
  
  <p>The above snippet compiles fine in clang and gcc, but not in MSVC. What is the correct behavior according to the standard? And if it's clang/gcc behavior then what are the conversion sequences used to deduce the common type of these two distinct types?</p>