कोड की निम्न बिट VS2008 और जीसीसी 4.8.2 में संकलितटाइपपीफ फू <> फू संकलित करता है लेकिन क्या यह मान्य है?
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
}
यह वैध है?
आप टेम्पलेट में डिफ़ॉल्ट तर्क प्रदान कर रहे हैं। यह पूरी तरह से मान्य है। –
@ कैप्टन: लेकिन इस तथ्य के बारे में क्या है कि वे दोनों 'फू' नामक हैं? – Cameron