C++(20):通过concept及nlohmann将数据转换为字符串

nlohmann可以自动兼容将C++的很多原生类型转换为json,甚至自定义类型也不需要太复杂的操作就可以转换为json,可以利用这一点将数据转换为string:


#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;
using json = nlohmann::json;

template
concept TO_JSONSTR = requires(T t)
{
    json(t);
};

template
string toStr(T t)
{
    json j = t;
    return j.dump();
}

template
string toStr(T t)
{
    cout<<"can't convert to string";
    return "";
}

struct Person1{
    string name = "xiaoming";
    int sex = 1;
};

NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT(Person1, name, sex)

struct Person2{
    string name = "xiaoming";
    int sex = 1;
};

int main()
{
    int a1 = 1;
    auto s1 = toStr(a1);
    cout<

你可能感兴趣的:(C/C++,c++)