假设有两个类Class1和Class2。鉴于条件,我必须以最短的方式在其中选择,而不使用if-else。 意味着最少的代码行。 在编译时只有!!!
class class1{};
class class2{};
auto data = (((condition) ? class1 : class2) *)(variable)
答案 0 :(得分:0)
假设您需要根据变量在编译时创建对象,您可以尝试类似下面的内容
class class1{};
class class2{};
int main( int argc, char *argv[] )
{
constexpr bool variable =true;
/* x is object of type class1 or class2 depending on
compile time constant 'variable'
*/
typedef std::conditional<variable, class1, class2>::type x;
//std::cout << typeid(x).name() << '\n';
return 0;
}
请参阅Here