虽然静态成员变量可以在C++ 14中进行模板化,但这将无法工作:
class SomeClass
{
public:
template<typename T>
T var = {};
};
int main()
{
SomeClass instance;
instance.var<int> = 50;
instance.var<double> = 0.1;
}
是什么原因导致C++标准不支持用于变量成员的模板,因为原则上应该这样做?
最佳答案
实例化该类时,您不知道它将使用多少内存。此类是否包含int和double?如果你写
instance.var<float> = 0.2;
instance.var<long long> = 1;
稍后在您的代码中