我已经得到了现在的问题是这样的设置:不能使用父类中嵌套类 - 即使嵌套类的定义之后
template<typename T> class Parent {
struct Nested;
std::unique_ptr<Nested> ptr;
public:
// stuff
~Parent();
};
template<typename T> struct Parent<T>::Nested {
Parent<T> p;
// stuff
};
的Visual Studio给我一个错误的Nested
结构正在使用不完整的类型Parent
- 即使之后的定义为类Parent
类已完成。
我该如何解决这个问题?
编辑:在情况下,它并不明显,我已经使用直到后Nested
类被定义为允许unique_ptr
到一个不完整类型的延迟析构函数定义。此外,它绝对与此无关,因为错误不是Nested
不完整 - 而是Nested
包含Parent
类型的成员,该成员不完整。另外,如果我通过使用std::function<void(Nodes*)>
明确地删除删除器,则问题没有解决。
此代码为MSVS2010编译(在顶部添加'#include'后) –
Attila
2012-03-22 02:34:33
它不适合我。 – Jagannath 2012-03-22 02:38:00
**我的坏**我有**错误**投票关闭作为一个确切的副本,它是**不**。不要投票结束。 – 2012-03-22 03:25:39