Open deandt100 opened 1 year ago
Hi,
I am getting the following compile error when optional properties are used alongside wstring (C++17)
'return': cannot convert from 'fromType' to 'std::optional<std::string>'
{ "id": "http://json-schema.org/geo", "$schema": "http://json-schema.org/draft-06/schema#", "description": "A geographical coordinate", "type": "object", "properties": { "latitude": { "type": "number" }, "longitude": { "type": "number" } } }
quicktype schema.json -o testy.h --namespace quicktype -s schema --lang c++ --wstring use-wstring --no-boost --include-location global-include --code-format with-struct --hide-null-optional
#include <string> #include <iostream> #include <sstream> #include "generated/testy.h" #include "testy.h" int main() { quicktype::coordinate request; auto json = quicktype::wdump(static_cast<nlohmann::json>(request)); std::wcout << json; }
I believe this can be fixed by adding the following convert overloads to the generated Utf16_Utf8 class :
Utf16_Utf8
static std::optional<std::string> convert(tag<std::optional<std::wstring>>, tag< std::optional<std::string>>, std::optional<std::wstring> str) { return str.has_value() ? std::optional{ convert(tag<std::wstring>(), tag<std::string>(), str.value()) } : std::nullopt; } static std::optional<std::wstring> convert(tag<std::optional<std::string>>, tag< std::optional<std::wstring>>, std::optional<std::string> str) { return str.has_value() ? std::optional{ convert(tag<std::string>(), tag<std::wstring>(), str.value()) } : std::nullopt; }
Hi,
I am getting the following compile error when optional properties are used alongside wstring (C++17)
Error
Schema (from example on quicktype.io)
Options used
Code :
I believe this can be fixed by adding the following convert overloads to the generated
Utf16_Utf8
class :