unordered_map静态断言失败

时间:2014-03-09 19:27:42

标签: c++ stl static assertion

由于静态断言失败错误,我无法声明unordered_map。首先,什么是静态断言?我搜索了答案,但文档对我来说是不可理解的。这是宣言:

std::unordered_map<Point3D<int>, int> tree;

这是结构Point3D

template <class T>
struct Point3D
{
public:
    T x, y, z;

    Point3D(T _x, T _y, T _z) : x(_x), y(_y), z(_z)
    {
    }
};

我可以或应该做些什么才能让它发挥作用?

谢谢! :)

1 个答案:

答案 0 :(得分:1)

这在Visual Studio 2010中为我编译好了:

#include <unordered_map>
template <class T>
struct Point3D
{
public:
    T x, y, z;

    Point3D(T _x, T _y, T _z) : x(_x), y(_y), z(_z)
    {
    }
};
std::unordered_map<Point3D<int>, int> tree;