#include <iostream>
#include <boost/spirit/include/qi.hpp>
namespace qi = boost::spirit::qi;
int main ()
{
std::string input("1.0 2.0");
std::string::iterator strbegin = input.begin();
std::pair<double, double> p;
qi::phrase_parse(strbegin, input.end(),
qi::double_ >> qi::double_,
qi::space,
p);
}
This is an example from additional documentation http://www.boost.org/doc/libs/1_55_0/libs/spirit/doc/html/spirit/abstracts/attributes/compound_attributes.html
I get a compiler error
main.cpp:14:14: instantiated from here
/usr/local/include/boost/spirit/home/qi/detail/assign_to.hpp:152:13: error: no matching function for call to βstd::pair<double, double>::pair(const double&)β
/usr/local/include/boost/spirit/home/qi/detail/assign_to.hpp:152:13: note: candidates are:
/usr/include/c++/4.6/bits/stl_pair.h:108:21: note: template<class _U1, class _U2> std::pair::pair(const std::pair<_U1, _U2>&)
/usr/include/c++/4.6/bits/stl_pair.h:103:26: note: std::pair<_T1, _T2>::pair(const _T1&, const _T2&) [with _T1 = double, _T2 = double]
/usr/include/c++/4.6/bits/stl_pair.h:103:26: note: candidate expects 2 arguments, 1 provided
/usr/include/c++/4.6/bits/stl_pair.h:99:26: note: std::pair<_T1, _T2>::pair() [with _T1 = double, _T2 = double]
/usr/include/c++/4.6/bits/stl_pair.h:99:26: note: candidate expects 0 arguments, 1 provided
/usr/include/c++/4.6/bits/stl_pair.h:87:12: note: std::pair<double, double>::pair(const std::pair<double, double>&)
/usr/include/c++/4.6/bits/stl_pair.h:87:12: note: no known conversion for argument 1 from βconst doubleβ to βconst std::pair<double, double>&β
make: *** [all] Error 1
Ashot source
share