我想我在 libc++ 列表实现中发现了一个错误。在 xcode 中使用某些构建设置时,以下代码将产生编译器错误(字段具有不完整的类型 '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 时缺少标头。除此之外,苹果似乎不再提供新版本的 GCC。
如果有人可以重新创建此问题,我将不胜感激,也许使用来自 libc++ 的新标头。
另外,如果更新 LLVM/libc++ 可以解决这个问题,你推荐吗?