使用 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE

问题描述 投票:0回答:1

我正在 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)

c++ json serialization json-deserialization nlohmann-json
1个回答
0
投票

发现问题了! 宏 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE 必须用于目标类成员的每个类型。 就我而言,该宏还应该用于 TestClass1,如下所示:

NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(测试类1,t1)

© www.soinside.com 2019 - 2024. All rights reserved.