【发布时间】:2013-11-18 19:49:36
【问题描述】:
template<int N>
struct S
{
void foo()
{
sizeof( S ); // (*)
sizeof( S<N> );
}
};
int main()
{
S<5> s;
s.foo();
return 0;
}
这段代码编译得很好(VS2010),但我对(*)字符串有疑问。 S 不是完整类型,不像 S<N> 在我看来那么编译器怎么知道它的大小?标准对这种情况有什么看法,格式正确吗sizeof?
【问题讨论】: