<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/70295>70295</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [libcxx] a question about: true ? std::declval<_Tp>() : std::declval<_Up>()
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            libc++
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          alanguo1234
      </td>
    </tr>
</table>

<pre>
    Hi 
   a little curious at common_type.h, it have below code:
template <class _Tp, class _Up>
struct __common_type2_imp<_Tp, _Up, __void_t<decltype(true ? std::declval<_Tp>() : std::declval<_Up>())> > {

typedef _LIBCPP_NODEBUG __decay_t<decltype(true ? std::declval<_Tp>() : std::declval<_Up>())> type;
};

why not directly use  std::declval<_Tp>() , thanks
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy8Us2OnDwQfBpzae3ItIcZOHCYP74vUpTsIXtGxvYOTgwmuD27vH1kdqLNIVIuUaSGtuWq6mq7ZQj2OhpTs-LIinMmI_V-rqWT4zX6HMU267xe6v8tMH5m_AAAEpwlcgZUnK2PASSB8sPgx5aWyWx6hiewBL28GeiM8y-gvDZMHN4kyAyTk2SAiZNyMgRov0yJc988TUxc3qCB5qgI2vYXfWztMDFxupMSPKX25q1uiYmTNsolIMOS5pjKNBBIp_rikA5v0t354sKwZFgBE4ffYp7eMSnEBdZvf3zzd29omYw2z9B-_HA8PT62nz6fL8en_6BttVFy-QemVmXx09T-_L5e_y_9AqMn0HY2itwCMRj4c3k8AfVy_BYyXQtdiUpmps53VSk4Fyiyvi6x2kpZCq73XOlS7LU2Mi95XgiFQqnM1shR5Bx3fMcLFBueV7sCq04UBT7nlWFbbgZp3ca527Dx8zWzIURT7zlWReZkZ1xYhxPR2U4xPK6BaVjnOpEeungNbMudDRTeZciSW8c60V5fWXEGCd-jCWT9CLLzkdL9_s3HyOLs6p5oCgmFDcPmaqmP3Ub5gWGTvN3TwzT7r0YRw2btNzBs1pZ_BAAA__-JgBGv">