如何聲明模板類的模板?看下面的代碼:如何聲明模板類的模板
File: A.h
class A
{
...
...
};
File: B.h
template <typename U>
class B
{
...
...
};
File C.h
template <class T>
class C
{
...
...
};
File C.cpp
//In this file I am able to write template declaration for class A(non-template class)
#include "A.h"
template C<A>; //this works fine.
How can I write the same for class B(which is a template class.)
#include "B.h"
template C<What should I write here for class B?>;
請注意,C++ 03編譯器*需要*將'>>'看作移位運算符,而C++ 0x(可能是C++ 11)編譯器將/不需要這裏的空間。 – 2011-05-06 13:02:02
@Christopher - 我用過的編譯器並不是那麼嚴格,而且似乎是從上下文中區分出來的。 – 2011-05-06 13:24:30
大多數編譯器默認情況下並不真正遵循任何標準,即使使用「嚴格」標誌,也很少這樣做。儘管如此,這是C++ 03標準中一個非常着名的缺陷,所以我當然希望你的編譯器至少在文檔中清楚地說明他們在這方面違反了規範。 (並不是說在這種情況下我有一個很大的問題。) – 2011-05-06 13:55:20