长话短说:我需要找到一个变量的类型来在#if condition
宏中使用它。我在提供的示例中的typeof()
是一个想象的函数、表达式、代码,我想知道。如果甚至存在...
否则,是否有任何变通方案?
样本代码:
template <class T>
class MyClass
{
T variable;
public:
#if typeof(T) == typeof(int)
// compile section A
#elif typeof(T) == typeof(string)
// compile section B
#endif
};
1条答案
按热度按时间hgqdbh6s1#
如果你希望在某些条件下提供一些成员和/或成员函数,一种方法是通过
std::conditional_t
从实现类继承:其中
MyClassDefaultImpl
只是默认情况,根据std::conditional_t
的需要而定。因此,
MyClass<int>
对象将具有foo()
成员函数:这比专业化有一些好处:
std::is_integral_v
之类的检查,而使用专门化则无法轻松完成。