she*_*idp 1 c++ json user-defined-literals
JSON for Modern C++使用以下语法:
json j = "{ \"happy\": true, \"pi\": 3.141 }"_json;
Run Code Online (Sandbox Code Playgroud)
我想知道他们是如何完成这件事的.
我不懂字符串文字_json语法.
C++ 11 在该语言中添加了用户定义的文字.定义用户定义的字符串文字将如下所示:
MyType operator"" _my_udl(char const*, std::size_t);
Run Code Online (Sandbox Code Playgroud)
它的工作方式几乎与常规函数调用完全相同.如果有"some string"_my_udl,编译器会operator"" _my_udl使用传入的字符串文字和大小生成对您的调用.
这就是Niels Lohmann的json图书馆正在做的事情_json; 它是一个UDL,相当于一个调用json::parse.