2012-09-18 32 views
2

我想爲任意整數創建boost :: spirit :: qi :: grammar。將整數存儲爲字符串只是感覺可怕的內存浪費,特別是當整數以二進制格式表示時。我如何在結構中使用任意精度的整數類(例如GMP或llvm :: APInt)?用boost :: spirit解析任意精度整數

回答

1

如果您有一個包含一系列任意長整數的文本文件,那麼Qi當然可以用於將該文件非常有效地解析爲單個數字,並以文本標記的形式呈現。您如何將這些令牌轉換爲GMP號碼取決於您,但我建議圖書館提供的通過文本輸入數字的機制比您可能想出的任何內容更優化。

如果您問是否可以改編Qi來讀取包含任意長數字的二進制文件,那麼答案是肯定的 - 目前支持二進制解析器,請參閱:http://www.boost.org/doc/libs/1_48_0/libs/spirit/doc/html/spirit/qi/reference/binary.html。我不確定您的目標數學庫的整數格式是否可以通過鏈接這些基元來直接讀取數字的二進制表示形式。或者,您可以根據其中一個設計您自己的解析器原語。