当我编写Delphi时,有一个TStringList,它基本上是Delphi通用TObject的字符串映射.使用这种结构,我可以通过将另一个TStringList放在其中一个字符串键上来轻松地创建一个递归的分层结构:
ParentStringList["somekey"] = "just a string value"; ParentStringList["anotherkey"] = SomeChildStringList;
问题是,我如何在C中实现同样的目标?
我现在所拥有的是:
typedef boost::variant< std::string,my_dictionary > my_variant; typedef std::map < std::string,my_variant > my_dictionary;
……这显然是圆形的.
我可以不在结构中包装东西(我可以转发声明),或者不使用指针(编译器知道其大小)吗?
解决方法
Boost.Variant documentation涵盖了这个确切的案例.如果不使用指针或其他类似的包装器,就无法做到这一点.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。