-7
假设有两个Class1和Class2类。给定一个条件,我必须尽可能以最短的方式选择它们而不使用if-else。 意味着最少的代码行。 仅在编译时!!!如何从两个类中选择一个条件在C++中?
class class1{};
class class2{};
auto data = (((condition) ? class1 : class2) *)(variable)
假设有两个Class1和Class2类。给定一个条件,我必须尽可能以最短的方式选择它们而不使用if-else。 意味着最少的代码行。 仅在编译时!!!如何从两个类中选择一个条件在C++中?
class class1{};
class class2{};
auto data = (((condition) ? class1 : class2) *)(variable)
假设您需要创建在对象取决于变量的编译时间,你可以尝试像下面
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
谢谢。它可能工作 – 2014-09-02 06:12:25
编译时间?运行? “选择”是什么意思?在“选择”之后你会做什么?创建该类型的对象?调用成员函数? – 2014-09-02 05:14:42
您的问题没有意义,请澄清 – P0W 2014-09-02 05:15:16
请向我们展示一些*实际*代码,以说明您尝试解决的具体问题。现在这个问题太模糊,无法回答。 – NPE 2014-09-02 05:16:19