私はに2つの整数のシーケンスを一致させるためにBoost.Sprit x3を使用しようとしています。文書から判断すると、次のコードはコンパイルする必要があり:2つの整数のシーケンスを `std :: pairにマッチングする<int, int> '
#include <string>
#include <boost/config/warning_disable.hpp>
#include <boost/spirit/home/x3.hpp>
int main()
{
using namespace boost::spirit::x3;
std::string input("1 2");
std::pair<int, int> result;
parse(input.begin(), input.end(), int_ >> int_, result);
}
しかし、それだけで最初の整数と一致します。 std::pair<int, int> result;
をint result;
に変更してからresult
を印刷すると、1
が出力されます。
どうしてですか? int_ >> int_
は、(および属性として設定)に一致するパーサーを定義する正しい方法ではありません 2つの整数?
'std :: pair'に適合する関連するBoost.Fusionヘッダーを含める必要があるようです。 –
@ T.C .:はい、それが問題を解決しました。ありがとう!あなたのコメントを回答として投稿し、私はそれを受け入れます。 –