从 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?