我已經得到了現在的問題是這樣的設置:不能使用父類中嵌套類 - 即使嵌套類的定義之後
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