下面的代碼位在VS2008和GCC 4.8.2編譯typedef Foo <> Foo編譯但它有效嗎?
template<typename T=void>
struct Foo
{
};
// typedef Foo<> Foo; // Does *NOT* compile
int main()
{
typedef Foo<> Foo;
Foo f1;
// Foo<char> f2; // Does *NOT* compile
//::Foo<char> f3; // COMPILES
}
是否有效?
您正在模板中提供默認參數。這是完全有效的。 – 2014-10-17 18:29:41
@Captain:但是他們都被命名爲'Foo'的事實呢? – Cameron 2014-10-17 18:30:15