इस कोड नहीं compiles (जीसीसी 5.3.1 + को बढ़ावा देने के 1.60) करता है:आत्मा X3, अर्थ कार्रवाई संकलन में विफल रहता है के साथ बनाता है: गुण नहीं है उम्मीद आकार
#include <boost/spirit/home/x3.hpp>
namespace x3 = boost::spirit::x3;
template <typename T>
void parse(T begin, T end) {
auto dest = x3::lit('[') >> x3::int_ >> ';' >> x3::int_ >> ']';
auto on_portal = [&](auto& ctx) {};
auto portal = (x3::char_('P') >> -dest)[on_portal];
auto tiles = +portal;
x3::phrase_parse(begin, end, tiles, x3::eol);
}
int main() {
std::string x;
parse(x.begin(), x.end());
}
यह एक स्थिर दावे से विफल रहता है:
error: static assertion failed: Attribute does not have the expected size.
वंडबॉक्स के लिए धन्यवाद मैंने 1.61 और क्लैंग को भी बढ़ावा देने का प्रयास किया, दोनों एक ही परिणाम उत्पन्न करते हैं।
यदि मैं portal
से जुड़ी अर्थपूर्ण कार्रवाई को हटा देता हूं, तो यह ठीक संकलित करता है;
auto dest = x3::lit('[') >> x3::int_ >> ']';
किसी भी मदद की सराहना की जाएगी: एक ही अगर मैं dest
करने के लिए बदल होता है। TIA।
यह प्रजनन उत्कृष्ट है। मुझे प्यार है जब लोग इस समस्या को संक्षेप में संकुचित करते हैं। +10 अगर मैं – sehe