[英]double-nested class forward declaration inside a template class
使用g ++ 4.6.2编译下一个代码时出现“ 15:14:错误:模板参数列表太少”
template <class T>
class A
{
public:
class B
{
public:
class C; //forward declaration
};
class D
{
//using B
};
class B::C // error here
{
//using D
};
//using B::C
};
/* works fine, but required into "A"
template <class T>
class A<T>::B::C
{
public:
};
*/
如何在不更改声明顺序的情况下解决问题?
如您所知,您没有在内部作用域中定义前向声明的类,而必须在相应的外部作用域中进行定义。 您的“工作正常”代码似乎可以在g ++ 4.5中正常编译。 您是说当您尝试“正常工作”时,第19行给出了错误吗? 那是因为它缺少一个终止符;
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.