【发布时间】:2018-03-20 23:29:56
【问题描述】:
虽然静态成员变量可以在 C++14 中进行模板化,但这是行不通的:
class SomeClass
{
public:
template<typename T>
T var = {};
};
int main()
{
SomeClass instance;
instance.var<int> = 50;
instance.var<double> = 0.1;
}
什么原因导致 C++ 标准不支持变量成员的模板,因为原则上应该是可能的?
【问题讨论】:
-
sizeof(SomeClass)是什么? -
@tkausl
sizeof(SomeClass)= 所有实例化的模板成员变量和非模板成员的大小之和 -
@DariusDuesentrieb:这将要求需要知道
sizeof(SomeClass)的每一段代码也需要知道在其众多配置中的任何一个中使用SomeClass的每一段代码。这是棘手的。在一般情况下,我无法想到一种方法。