如何在c ++条件下选择两个类?

时间:2014-09-02 05:11:32

标签: c++

假设有两个类Class1和Class2。鉴于条件,我必须以最短的方式在其中选择,而不使用if-else。 意味着最少的代码行。 在编译时只有!!!

class class1{};
class class2{};

auto data = (((condition) ? class1 : class2) *)(variable)

1 个答案:

答案 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