Ich versuche, einen Parser zu schreiben, der entweder eine int32_t
oder eine double
analysiert. Als erster Versuch schrieb ich diesen Parser:boost spirit x3 int32 | double_ kann nicht doppelt parsen
const auto int_or_double = boost::spirit::x3::int32 | boost::spirit::x3::double_;
, die ich erwarte einen boost::variant<int32_t, double>
die Parser gelingen, um wieder zu ints wie 12, 100, -42, 7
zu analysieren aber es funktioniert nicht verdoppelt, wie 13.243, 42.7, 12.0 -10000.3
hier ein Live ist zu analysieren, demo
Warum scheitert dieser Parser im Doppel?
wow danke ich wusste nicht über die 'strict_real_policies' Vorlage – Exagon