【发布时间】:2020-03-29 00:11:09
【问题描述】:
需要使用taocpp-json查找json对象中是否存在数组。查找整数和布尔值等很容易使用可选,但是如果值是数组,我不知道该怎么做。
我试过了:
v.optional<std::vector<tao::json::value>>("fields");
但这给了我编译器错误!
在 msvc 上: C:\PROGRA~2\MICROS~1\2017\PROFES~1\VC\Tools\MSVC\1416~1.270\bin\Hostx64\x64\cl.exe /nologo /TP -IC:\devel\cpp\vcpkg\已安装\x64-windows\include /DWIN32 /D_WINDOWS /GR /EHsc /O2 /Ob2 /DNDEBUG -MD -std:c++17 /showIncludes /Fosrc\CMakeFiles\tabgen.dir\file_manager.cpp.obj /Fdsrc\CMakeFiles \tabgen.dir\ /FS -c ..\src\file_manager.cpp c:\devel\cpp\vcpkg\installed\x64-windows\include\tao\json\basic_value.hpp(1308): 错误 C2440: 'return': 无法从 'void' 转换为 'std::optional,std: :allocator<_ty>>>' 和 [ _Ty=tao::json::basic_value ] c:\devel\cpp\vcpkg\installed\x64-windows\include\tao\json\basic_value.hpp(1308):注意:void类型的表达式不能转换为其他类型 ..\src\file_manager.cpp(24): 注意:参见函数模板实例化 'std::optional,std::allocator<_ty>>> tao::json::basic_value::optional>,char[7 ]>(const K (&)) const' 正在编译 和 [ _Ty=tao::json::basic_value, K=字符 [7] ] ..\src\file_manager.cpp(24): 注意:参见函数模板实例化 'std::optional,std::allocator<_ty>>> tao::json::basic_value::optional>,char[7 ]>(const K (&)) const' 正在编译 和 [ _Ty=tao::json::basic_value, K=字符 [7] ] c:\devel\cpp\vcpkg\installed\x64-windows\include\tao\json\events/virtual_base.hpp(69):注意:请参阅正在编译的类模板实例化 'tao::basic_binary_view' 的参考 C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.16.27023\include\filesystem(2392):注意:请参阅类模板实例化 'std::chrono::time_point ' 正在编译 C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.16.27023\include\type_traits(616):注意:请参阅对类模板实例化 'std::basic_string_view>' 的引用编译 C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.16.27023\include\xstring(2124):注意:请参阅对类模板实例化 'std::is_convertible>>' 的引用正在编译 和 [ _StringViewIsh=const wchar_t * ] C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.16.27023\include\xstring(2122):注意:请参阅变量模板 'const bool combine_v >>,std: :negation > >' 正在编译 C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.16.27023\include\xstring(2281):注意:参见别名模板实例化 'std::basic_string,std: :allocator>::_Is_string_view_ish<_stringviewish>' 正在编译 和 [ _StringViewIsh=const wchar_t * ]
您知道如何检查是否存在具有数组类型值的键吗?
【问题讨论】:
-
为什么不显示错误,它可能包含有用的信息;-)