<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">