3

I would like to create boost::spirit::qi::grammar for arbitrary integer. Storing integer to string just feels terrible wasting of memory especially when integer is represented in binary format. How could I use arbitrary precision integer class (e.g. GMP or llvm::APInt) in structure?

4

2 に答える 2

1

一連の任意の長さの整数を含むテキスト ファイルがある場合、Qi を使用して、そのファイルをテキスト トークンとして提示される個々の数値に非常に効率的に解析できます。これらのトークンを GMP 番号に変換する方法はあなた次第ですが、テキストを介して数値を入力するためにライブラリによって提供されるメカニズムは、頭のてっぺんから思いつくよりも最適化されていることをお勧めします。

任意の長さの数値を含むバイナリ ファイルを読み取るように Qi を適合させることができるかどうかを尋ねる場合、答えはイエスです。バイナリ パーサーは既にサポートされています。こちらを参照してください: http://www.boost.org/doc/libs/ 1_48_0/libs/spirit/doc/html/spirit/qi/reference/binary.html . 私の推測では、ターゲットの数学ライブラリの整数の形式はわかりませんが、これらのプリミティブをリンクして、数値のバイナリ表現を直接読み取ることができると思います。または、これらのいずれかに基づいて独自のパーサー プリミティブを設計することもできます。

于 2013-01-21T13:09:45.733 に答える