从 visual studio 中间 window 调用方法 nlohmann::json::dump
Calling method nlohmann::json::dump from visual studio intermediate window
我正在尝试将 nlohmann::json
类型的对象转储到 visual studio 调试器的可读字符串值中。因此,为了从 nlohmann::json
实例调用转储方法,我使用 visual studio 中间 window。
但是,似乎此方法运行 效果不佳并且 return too few arguments in function call
错误,尽管我完全按照我应该的方式调用它。此外,如果我尝试将其输出设置为新的 std::string 类型,调试器将无法识别它。
myJsonObj
{m_type=object (1 '\x1') m_value={object=0x000001303ea66590 { size=2 } array=0x000001303ea66590 { size=1152921422937066337 } ...} }
m_type: object (1 '\x1')
m_value: {object=0x000001303ea66590 { size=2 } array=0x000001303ea66590 { size=1152921422937066337 } string=0x000001303ea66590 "0A_>0\x1" ...}
myJsonObj.dump()
too few arguments in function call
std::string x = myJsonObj.dump()
identifier "x" is undefined
知道如何正确地做到这一点吗?
在中间window,我们不能为C++函数使用默认参数。您可以像这样调用转储方法:
myJsonObj.dump(4, ' ', true, nlohmann::detail::error_handler_t::strict)
然而,在中间 window,我们看不到漂亮的格式化打印。您可以使用Visual Studio Watch Window 来显示返回的字符串。请参阅此处 link 以了解如何使用手表 window:
How to make Visual Studio's Immediate window give me plain string output?
我正在尝试将 nlohmann::json
类型的对象转储到 visual studio 调试器的可读字符串值中。因此,为了从 nlohmann::json
实例调用转储方法,我使用 visual studio 中间 window。
但是,似乎此方法运行 效果不佳并且 return too few arguments in function call
错误,尽管我完全按照我应该的方式调用它。此外,如果我尝试将其输出设置为新的 std::string 类型,调试器将无法识别它。
myJsonObj
{m_type=object (1 '\x1') m_value={object=0x000001303ea66590 { size=2 } array=0x000001303ea66590 { size=1152921422937066337 } ...} }
m_type: object (1 '\x1')
m_value: {object=0x000001303ea66590 { size=2 } array=0x000001303ea66590 { size=1152921422937066337 } string=0x000001303ea66590 "0A_>0\x1" ...}
myJsonObj.dump()
too few arguments in function call
std::string x = myJsonObj.dump()
identifier "x" is undefined
知道如何正确地做到这一点吗?
在中间window,我们不能为C++函数使用默认参数。您可以像这样调用转储方法:
myJsonObj.dump(4, ' ', true, nlohmann::detail::error_handler_t::strict)
然而,在中间 window,我们看不到漂亮的格式化打印。您可以使用Visual Studio Watch Window 来显示返回的字符串。请参阅此处 link 以了解如何使用手表 window: How to make Visual Studio's Immediate window give me plain string output?