如何解决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<>;
json
是 basic_json
的别名,因此您需要先转发声明 basic_json
,然后才能声明 json
。如果您在 json_fwd.hpp
中向上滚动一点,您会看到 basic_json
的大量前置声明。因此,如果您想在头文件中使用 nlohmann::json &
,您可以包含 json_fwd.hpp
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。