微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Nlohmann::json& 作为函数参数,在头文件中不包含 json.hpp

如何解决Nlohmann::json& 作为函数参数,在头文件中不包含 json.hpp

我有一个类,我想要一个使用 nlohmann::json& 作为参数的函数

class MyClass
{
public:
    void foo(nlohmann::json& node); 
};

但我不想在我的头文件中包含 json.hpp 文件,只包含我的 .cpp。如何在标头中声明 nlohmann::json ?我试过了:

namespace nlohmann
{
    class json;
}

但这似乎不起作用。

解决方法

如果我们查看源代码,我们可以看到 json 是在 json_fwd.hpp 中定义的。

using json = basic_json<>;

jsonbasic_json 的别名,因此您需要先转发声明 basic_json,然后才能声明 json。如果您在 json_fwd.hpp 中向上滚动一点,您会看到 basic_json 的大量前置声明。因此,如果您想在头文件中使用 nlohmann::json &,您可以包含 json_fwd.hpp

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。