【发布时间】:2015-07-14 21:35:18
【问题描述】:
由于有很多建议,我想问一下 C++ 中是否存在这样的事情,或者是否有任何建议做这样的事情。
想法:
template <typename T>
constexpr typename evalToType(int x, int y) {
if(x > y)
return T;
else
return int;
}
template <typename T, int x, int y>
evalToType<T>(x, y) SomeFunction() {
return 0;
}
这样做的动机是微不足道和简单的,基本上是模板可能非常复杂并且变得非常不可读,所以为什么不将模板 SFINAE 的内容表达为基本上返回类型而不是值的 constexpr。
【问题讨论】:
-
如果有有这样的提议,我希望它被拒绝。
-
@Captain Obvlious 请问为什么这是个坏主意?
标签: c++ templates c++11 c++14 constexpr