libc++ リストの実装にバグを見つけたと思います。次のコードは、xcode で特定のビルド設定を使用すると、コンパイラ エラー (Field has incomlete type 'foo') を生成します。
#include <list>
using namespace std;
class foo {
public:
list<foo> bar;
};
設定は次のとおりです。
XCode バージョン: 4.4.1
C++ 言語方言: C++11 または GNU++11
C++ 標準ライブラリ: C++ 拡張機能を備えた LLVM C++ 標準ライブラリ (libc++11)
GCC libstdc++ を使用すると、エラーが解決されます。
C++11 の方言を使用しないと、エラーが解決されます。
リストの代わりにベクトルを使用すると、エラーが解決されます。
リスト実装のバグだと思いますが、よくわかりません。
無知で申し訳ありませんが、この問題を解決するために何をすべきかわかりません。
ベクトルへの切り替えは私のプロジェクトではオプションではなく、C++11 の機能が絶対に必要です。これには shared_ptr も含まれますが、GCC を使用するとヘッダーが欠落します。それに加えて、Apple はもはや GCC の新しいバージョンを提供していないようです。
おそらくlibc ++の新しいヘッダーを使用して、誰かがこの問題を再現できれば幸いです。
また、LLVM/libc++ を更新するとこの問題が解決する場合、それをお勧めしますか?