虽然静态成员变量可以在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;

稍后在您的代码中

09-11 18:01
查看更多