我正在 Visual Studio 2019 上构建并使用 nlohmann json.hpp 并得到这个编译器错误:
C2679 binary '=': no operator found which takes a right-hand operand of type 'const TestClass1' (or there is no acceptable conversion)
。
class TestClass1
{
public:
virtual TestClass1 & operator = (const TestClass1 & o)
{
return *this;
}
int t1;
};
class TestClass
{
public:
TestClass1 tt1;
};
NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(测试类,tt1)
发现问题了! 宏 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE 必须用于目标类成员的每个类型。 就我而言,该宏还应该用于 TestClass1,如下所示:
NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(测试类1,t1)