tow*_*120 4 c++ type-traits c++11
这个表达怎么了?
template<class T, class FieldT>
using addRefU = typename std::conditional<
// ok when true. When false result has no reference at all
false,
typename std::add_rvalue_reference< FieldT >::type,
typename std::conditional<
true,
typename std::add_rvalue_reference< FieldT >::type,
typename std::add_lvalue_reference< FieldT >::type
>
>::type;
int main()
{
std::cout << std::is_rvalue_reference<
addRefU<A, B>
>::value << std::endl;
std::cout << std::is_lvalue_reference<
addRefU<A, B>
>::value << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
http://coliru.stacked-crooked.com/a/21593805f2c6e634
结果,它根本没有参考.嵌套的std :: conditional是不允许的?
你::type在嵌套上忘了一个conditional:
template<class T, class FieldT>
using addRefU = typename std::conditional<
// ok when true. When false result has no reference at all
false,
typename std::add_rvalue_reference< FieldT >::type,
typename std::conditional<
true,
typename std::add_rvalue_reference< FieldT >::type,
typename std::add_lvalue_reference< FieldT >::type
>::type
>::type;
int main()
{
std::cout << std::is_rvalue_reference<
addRefU<A, B>
>::value << std::endl;
std::cout << std::is_lvalue_reference<
addRefU<A, B>
>::value << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1369 次 |
| 最近记录: |