【发布时间】:2020-07-25 09:07:36
【问题描述】:
随着 C++ 扩展到融合普通计算和类型计算,我想知道是否有办法让这样的工作?
static const int x = 47;
using T = (x%2) ? int : double;
我知道我可以在一个基于 if constepr 返回不同类型的模板函数上使用 decltype,但我想要一些简短的东西,就像我原来的例子一样。
template<auto i> auto determine_type(){
if constexpr(i%2) {
return int{};
} else {
return double{};
}
}
注意:我很高兴使用 C++20
【问题讨论】:
-
这样的用例是什么?还是只是好奇?
-
std::conditional?它已经存在了一段时间 -
@Rakete1111 主要是对语言限制的好奇。
标签: c++ template-meta-programming constexpr c++20