下面的代码没有用clang 3.1编译,使用libc++(不知道版本,目前Xcode自带的)。它适用于其他标准库。我的代码中是否有错误,或者这是 libc++ 中的错误?
#include <map>
#include <string>
using namespace std;
struct A {
A(const map<int, A>& m) {}
};
struct B {
map<string, A> m;
};
我看到的错误是<utility>
:
/usr/lib/c++/v1/utility:241:64: No member named 'value' in 'std::__1::is_nothrow_copy_constructible<A>'
我试图进一步隔离它,但这是我发现的最小示例。有趣的是,当我在第二张地图中替换为时(当我在第一张地图中替换string
为int时):int
int
string
map<string, A> m; // Does not work
map<int, A> m; // Works