Example verbatim snippet from X3 documentation "Attributes of Compound Components" fails to compile
"Chris Mileto" <[email protected]> Sun, 11 Nov 2018 19:17:53 -0500
| Newsgroups | gmane.comp.parsers.spirit.general |
|---|---|
| Message-ID | <[email protected]> |
As an X3 newbie I am having trouble compiling the following verbatim snippet
from the X3 documentation under the section entitled "
<https://www.boost.org/doc/libs/develop/libs/spirit/doc/x3/html/spirit_x3/ab
stracts/compound_attributes.html> Attributes of Compound Components" using
either GNU or Microsoft, either C++14 or C++17 or any version of Boost with
X3:
#include <boost/spirit/home/x3.hpp>
namespace x3 = boost::spirit::x3;
int main()
{
// the following parses "1.0 2.0" into a pair of double
std::string input("1.0 2.0");
std::string::iterator strbegin = input.begin();
std::pair<double, double> p;
x3::phrase_parse(strbegin, input.end(),
x3::double_ >> x3::double_, // parser grammar
x3::space, // delimiter grammar
p); // attribute to fill while
parsing
}
Compilation produces the following error:
error C2679: binary '=': no operator found which takes a right-hand operand
of type 'double' (or there is no acceptable conversion)
c:\program files (x86)\microsoft visual
studio\2017\community\vc\tools\msvc\14.15.26726\include\utility(276): note:
could be 'std::pair<double,double> &std::pair<double,double>::operator
=(volatile const std::pair<double,double> &)'
c:\tools\boost\boost\spirit\home\x3\support\traits\move_to.hpp(61): note:
while trying to match the argument list '(Dest, double)'
with
[
Dest=std::pair<double,double>
]
Thanks for any insight,
Chris
_______________________________________________
Spirit-general mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/spirit-general