我有一个带有3个模板参数的模板类。
template <class T, class U, class Y>
class MyClass {};
我想通过CLI参数从用户那里获得输入,例如./cli float driver-x load
float
或double
driver-x
,driver-y
,...load
,unload
,...如果要基于用户输入创建MyClass
的新实例,则必须定义许多if/else
语句。因为用户输入为string
,所以我必须为其准备条件。因此,它将是这样的:
if (data_type == "float")
if (driver == "driver-x")
if (action == "load")
MyClass<float, DriverX, Load> t;
t......
据我所知,不可能在C ++中将类型存储在变量中。
所以,有什么方法可以改善if/else
语句?类似于:
if (data_type == "float")
//
if (driver == "driver-x")
//
if (action == "load")
//
MyClass<......> t;
t.....;
或其他方式?
我正在寻找一种改进这些if/else
语句的方法。
我认为您正在寻找类似X-宏的东西:
您可以构建一些机制来为您执行此操作,将其提取到函数调用中。
您可以构建一些机制来为您执行此操作,将其提取到函数调用中。