#ifndef __TEST__
#define __TEST__
namespace std
{
template<typename T>
class list;
}
template<typename T>
void Pop(std::list<T> * l)
{
while(!l->empty())
l->pop();
}
#endif
并在我的主体中使用了该功能。我得到错误。当然,我知道还有更多的模板参数std::list
(我认为分配器)。但是,这是没有意义的。我是否必须知道模板类的完整模板声明才能进行声明?
编辑:我以前没有使用过指针-这是一个参考。我将使用指针进行尝试。
可以认为STL不包含前向声明标头是一种疏忽。另一方面,它的文件经常被包含进来,以至于在编译时可能不会产生任何好处...
—
Matthieu M.
__TEST__
是保留的标识符,请勿使用。
std::allocator<T>