我今天遇到了一个障碍......我想定义一个小的模板化帮助器类:
template<class T>
CMyClass
{
public :
CMyClass() { size_t iSize = sizeof(T); } // Allowed.
size_t GetElementSize() const { return sizeof(T); } // C2027.
};
当然,它不会编译(C2027)。我的问题是,是否可以获得类型的大小?我需要这个的原因是构造对象的类型可能是许多不同定义的结构,因此我需要在运行时获取所用结构的大小。
通过一些快速的实验,因为我很固执,似乎我可以在 ctor 中使用 sizeof(T) ,但不能在非 ctor 函数中使用 - 所以我现在的问题是......为什么?!