C ++相当于Python的“构造”库

时间:2012-02-02 07:12:38

标签: c++ python struct construct

我正在寻找一个类似于Python的“构造”的库,可能有人移植了它。

  

Construct是一个功能强大的二进制数据声明解析器。

     

它基于定义数据结构的概念   声明性的方式,而不是程序性代码:简单的构造可以   分层组合以形成日益复杂的数据   结构。它是第一个使解析变得有趣的库而不是   这是今天常见的头痛。

这是java的类似问题。 Java equivalent of Python's "construct" library

感谢。

3 个答案:

答案 0 :(得分:1)

您可能有兴趣看一下Protocol Buffers。该库将允许您以可编译为C ++,Java或python的中间语言编写数据描述。

答案 1 :(得分:0)

为什么是,struct s,原生于C和C ++。除非您希望能够生成具有一组只能在运行时确定的字段的结构;在这种情况下,malloc(分配struct变量需要的内存)和一些memcpy s(将数据写入struct变量)应该可以解决问题。

答案 2 :(得分:0)

作为参考,OP正在讨论名为Construct的该库。 该库允许您构建可以解析和重建原始二进制数据流的解析器/构造函数。 “ Construct是一个功能强大的声明性和对称解析器,并且是二进制数据的构建器。”当搜索类似于Construct的库时,这一区别很重要。它确实是独一无二的,并且是我在C ++中真正想要的功能。

我能找到的最接近的库称为binpac。但是,它仅创建解析器,并且是生成C ++代码的外部工具。