R: R: R: Error only on G++ Debian
Claudio La Rosa <[email protected]> Mon, 22 Jan 2018 18:20:34 +0100
| Newsgroups | gmane.comp.parsers.spirit.general |
|---|---|
| Message-ID | <[email protected]> |
>All the source is better than no source at all. You just tell us you're
>using `parse` or `phrase_parse`. Well, obviously you do since you're
>using Boost Spirit Qi.
>If it's a lot of code all you risk is that no one is going to have time
>to look at it. Right now, all you risk is wasting any time we **could
>have** spent looking at (too much) code.
>Seth
I reduced my program to a minimum. I report it here:
#include <iostream>
#include <fstream>
#include <string>
#include <boost/bind.hpp>
#include <boost/lexical_cast.hpp>
#include <boost/spirit/include/phoenix_operator.hpp>
#include <boost/spirit/include/phoenix_stl.hpp>
#include <boost/spirit/include/phoenix_core.hpp>
#include <boost/spirit/include/qi.hpp>
#include <boost/spirit/include/qi_raw.hpp>
#include <boost/spirit/include/qi_int.hpp>
#include <boost/spirit/repository/include/qi_seek.hpp>
#include <boost/spirit/include/qi_list.hpp>
#include <boost/spirit/include/qi_eol.hpp>
#include <boost/spirit/include/qi_eoi.hpp>
#include <boost/spirit/include/phoenix_operator.hpp>
#include <boost/spirit/include/phoenix_stl.hpp>
#include <boost/spirit/include/phoenix_core.hpp>
#include <boost/bind.hpp>
#include <boost/lexical_cast.hpp>
#include <boost/any.hpp>
#include <boost/algorithm/string/replace.hpp>
#include <boost/algorithm/string/trim.hpp>
#include <boost/spirit/include/qi_int.hpp>
#include <boost/spirit/repository/include/qi_seek.hpp>
#include <boost/spirit/include/qi_list.hpp>
#include <boost/spirit/include/qi_eol.hpp>
#include <boost/spirit/include/qi_eoi.hpp>
#include <boost/spirit/include/phoenix_operator.hpp>
#include <boost/spirit/include/phoenix_stl.hpp>
#include <boost/spirit/include/phoenix_core.hpp>
#include <boost/phoenix/bind/bind_member_function.hpp>
using namespace std;
namespace qi = boost::spirit::qi;
namespace ascii = boost::spirit::ascii;
namespace phoenix = boost::phoenix;
using qi::double_;
using qi::phrase_parse;
using qi::_1;
using ascii::space;
using phoenix::push_back;
template <typename Iterator>
struct asmGrammar : qi::grammar<Iterator, std::string()>
{
public:
//CTor
asmGrammar() : asmGrammar::base_type(start)
{
using qi::eps;
using qi::lit;
using qi::_val;
using qi::_1;
using ascii::char_;
using boost::spirit::ascii::no_case;
using phoenix::push_back;
using phoenix::ref;
using boost::spirit::qi::int_;
using boost::spirit::qi::eol;
using boost::spirit::qi::eoi;
start = *qi::char_(' ');
}
void parseFirstStep(string line)
{
phrase_parse(line.begin(), line.end(), start, ascii::space);
}
private:
qi::rule<Iterator, std::string()> start;
};
int main(int argc, char *argv[])
{
asmGrammar<std::string::const_iterator> assemblyParser;
assemblyParser.parseFirstStep("ciao!");
std::cin.get();
return 0;
}
This code do not compile on Debian Linux with G++ 6.3.0
(Linux version 4.4.91-ti-r133 (root@b7-am57xx-beagle-x15-2gb) (gcc version 6.3.0 20170516 (Debian 6.3.0-18) ))
The same code compile without problem in VisualStudio 2017.
Ciao
Claudio
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Spirit-general mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/spirit-general