gpt4 book ai didi

c++ - 自由函数中的类型转换

转载 作者:行者123 更新时间:2023-11-28 07:15:34 27 4
gpt4 key购买 nike

使用类似 jsoncpp 的库序列化我的 C++ 对象和数据(例如用 Python 绘制它们),我真的厌倦了代码中的所有循环来转换 std::vector< double >进入Json::Value秒。我最终一次又一次地重新输入相同的行。因此,我想让这更容易一些。

我有两个用例:转换 STL类型(至少 std::vectorstd::map )从和到 Json::Value ,并使用我自己的数据类型执行此操作。

自身数据类型的解决方案:

  • 定义构造函数期待const Json::Value& ,然后构造函数尝试用数据填充对象,或者如果传递的值不满足特定要求则抛出异常
  • 定义operator Json::Value()作为我类(class)的成员函数。

这样,我应该能够写出这样的东西:

MyObj o;
Json::Value root;
root["foo"] = o;
MyObj reconstructed(root["foo"]);

但是我应该如何处理 STL类型?编写显式函数,也许是模板,或者我应该为我自己的数据类型做同样的事情,只是我使用自由函数而不是成员函数?最佳做法是什么?

最佳答案

您可以使用 for_each 编写单个函数来执行此操作.

如果你想支持嵌套容器( vector 中的 vector 等),那么你需要包装函数并递归调用函数,直到输入类型允许直接转换为 Json::Value。

关于c++ - 自由函数中的类型转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20281579/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com