//test.cpp
#include <boost/spirit/include/qi.hpp>
#include <vector>
#include <string>
#include <iostream>
using namespace boost::spirit::qi;
int main(){
	std::cout<<BOOST_LIB_VERSION<<std::endl;//check that proper version is used
	std::string str="1.0,119,80,35,0,29.0,0.263,29,1";
	std::vector<double> fileContents;
	phrase_parse(
		str.begin(),str.end(),
			double_ % ',',
		space , fileContents
	);

	for(std::size_t j = 0; j != 9; ++j)
		std::cout<<fileContents[j]<<" "<<std::flush;

}


$ g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-unknown-linux-gnu/5.1.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: /build/gcc/src/gcc-5-20150623/configure --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ --enable-shared --enable-threads=posix --enable-libmpx --with-system-zlib --with-isl --enable-__cxa_atexit --disable-libunwind-exceptions --enable-clocale=gnu --disable-libstdcxx-pch --disable-libssp --enable-gnu-unique-object --enable-linker-build-id --enable-lto --enable-plugin --enable-install-libiberty --with-linker-hash-style=gnu --enable-gnu-indirect-function --disable-multilib --disable-werror --enable-checking=release --with-default-libstdcxx-abi=c++98
Thread model: posix
gcc version 5.1.0 (GCC) 


//testing of 1.58 for comparison
$ g++ -g -Wall test.cpp -o test
$ valgrind ./test
==2102== Memcheck, a memory error detector
==2102== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
==2102== Using Valgrind-3.10.1 and LibVEX; rerun with -h for copyright info
==2102== Command: ./test
==2102== 
1_58
1 119 80 35 0 29 0.263 29 1 ==2102== 
==2102== HEAP SUMMARY:
==2102==     in use at exit: 72,704 bytes in 1 blocks
==2102==   total heap usage: 7 allocs, 6 frees, 73,008 bytes allocated
==2102== 
==2102== LEAK SUMMARY:
==2102==    definitely lost: 0 bytes in 0 blocks
==2102==    indirectly lost: 0 bytes in 0 blocks
==2102==      possibly lost: 0 bytes in 0 blocks
==2102==    still reachable: 72,704 bytes in 1 blocks
==2102==         suppressed: 0 bytes in 0 blocks
==2102== Rerun with --leak-check=full to see details of leaked memory
==2102== 
==2102== For counts of detected and suppressed errors, rerun with: -v
==2102== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)


//1.59 is installed in m user directory
$ g++ -g -I /home/ulfi/include/ test.cpp -o test
In file included from /home/ulfi/include/boost/spirit/home/qi/numeric/real.hpp:21:0,
                 from /home/ulfi/include/boost/spirit/home/qi/numeric.hpp:17,
                 from /home/ulfi/include/boost/spirit/home/qi.hpp:22,
                 from /home/ulfi/include/boost/spirit/include/qi.hpp:16,
                 from test.cpp:1:
/home/ulfi/include/boost/spirit/home/qi/numeric/detail/real_impl.hpp: In instantiation of 'bool boost::spirit::traits::scale(int, T&, AccT) [with T = double; AccT = long unsigned int]':
/home/ulfi/include/boost/spirit/home/qi/numeric/detail/real_impl.hpp:293:30:   required from 'static bool boost::spirit::qi::detail::real_impl<T, RealPolicies>::parse(Iterator&, const Iterator&, Attribute&, const RealPolicies&) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Attribute = double; T = double; RealPolicies = boost::spirit::qi::real_policies<double>]'
/home/ulfi/include/boost/spirit/home/qi/numeric/real.hpp:168:34:   required from 'bool boost::spirit::qi::any_real_parser<T, RealPolicies>::parse(Iterator&, const Iterator&, Context&, const Skipper&, T&) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Context = boost::spirit::context<boost::fusion::cons<std::vector<double>&, boost::fusion::nil_>, boost::spirit::locals<> >; Skipper = boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::space, boost::spirit::char_encoding::standard> >; T = double; RealPolicies = boost::spirit::qi::real_policies<double>]'
/home/ulfi/include/boost/spirit/home/qi/detail/fail_function.hpp:38:20:   required from 'bool boost::spirit::qi::detail::fail_function<Iterator, Context, Skipper>::operator()(const Component&, Attribute&) const [with Component = boost::spirit::qi::any_real_parser<double, boost::spirit::qi::real_policies<double> >; Attribute = double; Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Context = boost::spirit::context<boost::fusion::cons<std::vector<double>&, boost::fusion::nil_>, boost::spirit::locals<> >; Skipper = boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::space, boost::spirit::char_encoding::standard> >]'
/home/ulfi/include/boost/spirit/home/qi/detail/pass_container.hpp:283:38:   required from 'bool boost::spirit::qi::detail::pass_container<F, Attr, Sequence>::dispatch_container(const Component&, mpl_::false_) const [with Component = boost::spirit::qi::any_real_parser<double, boost::spirit::qi::real_policies<double> >; F = boost::spirit::qi::detail::fail_function<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, boost::spirit::context<boost::fusion::cons<std::vector<double>&, boost::fusion::nil_>, boost::spirit::locals<> >, boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::space, boost::spirit::char_encoding::standard> > >; Attr = std::vector<double>; Sequence = mpl_::bool_<false>; mpl_::false_ = mpl_::bool_<false>]'
/home/ulfi/include/boost/spirit/home/qi/detail/pass_container.hpp:331:38:   required from 'bool boost::spirit::qi::detail::pass_container<F, Attr, Sequence>::dispatch_attribute(const Component&, mpl_::true_) const [with Component = boost::spirit::qi::any_real_parser<double, boost::spirit::qi::real_policies<double> >; F = boost::spirit::qi::detail::fail_function<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, boost::spirit::context<boost::fusion::cons<std::vector<double>&, boost::fusion::nil_>, boost::spirit::locals<> >, boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::space, boost::spirit::char_encoding::standard> > >; Attr = std::vector<double>; Sequence = mpl_::bool_<false>; mpl_::true_ = mpl_::bool_<true>]'
/home/ulfi/include/boost/spirit/home/qi/detail/pass_container.hpp:351:38:   required from 'bool boost::spirit::qi::detail::pass_container<F, Attr, Sequence>::operator()(const Component&) const [with Component = boost::spirit::qi::any_real_parser<double, boost::spirit::qi::real_policies<double> >; F = boost::spirit::qi::detail::fail_function<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, boost::spirit::context<boost::fusion::cons<std::vector<double>&, boost::fusion::nil_>, boost::spirit::locals<> >, boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::space, boost::spirit::char_encoding::standard> > >; Attr = std::vector<double>; Sequence = mpl_::bool_<false>]'
/home/ulfi/include/boost/spirit/home/qi/operator/list.hpp:65:19:   required from 'bool boost::spirit::qi::list<Left, Right>::parse_container(F) const [with F = boost::spirit::qi::detail::pass_container<boost::spirit::qi::detail::fail_function<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, boost::spirit::context<boost::fusion::cons<std::vector<double>&, boost::fusion::nil_>, boost::spirit::locals<> >, boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::space, boost::spirit::char_encoding::standard> > >, std::vector<double>, mpl_::bool_<false> >; Left = boost::spirit::qi::any_real_parser<double, boost::spirit::qi::real_policies<double> >; Right = boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard, true, false>]'
/home/ulfi/include/boost/spirit/home/qi/operator/list.hpp:93:33:   required from 'bool boost::spirit::qi::list<Left, Right>::parse(Iterator&, const Iterator&, Context&, const Skipper&, Attribute&) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Context = boost::spirit::context<boost::fusion::cons<std::vector<double>&, boost::fusion::nil_>, boost::spirit::locals<> >; Skipper = boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::space, boost::spirit::char_encoding::standard> >; Attribute = std::vector<double>; Left = boost::spirit::qi::any_real_parser<double, boost::spirit::qi::real_policies<double> >; Right = boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard, true, false>]'
/home/ulfi/include/boost/spirit/home/qi/parse.hpp:164:13:   required from 'bool boost::spirit::qi::phrase_parse(Iterator&, Iterator, const Expr&, const Skipper&, boost::spirit::qi::skip_flag::enum_type, Attr&) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Expr = boost::proto::exprns_::expr<boost::proto::tagns_::tag::modulus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::double_>&, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const char&>, 0l> >, 2l>; Skipper = boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<boost::spirit::tag::char_code<boost::spirit::tag::space, boost::spirit::char_encoding::standard> >, 0l>; Attr = std::vector<double>]'
/home/ulfi/include/boost/spirit/home/qi/parse.hpp:210:32:   required from 'bool boost::spirit::qi::phrase_parse(const Iterator&, Iterator, const Expr&, const Skipper&, Attr&) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Expr = boost::proto::exprns_::expr<boost::proto::tagns_::tag::modulus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::double_>&, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const char&>, 0l> >, 2l>; Skipper = boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<boost::spirit::tag::char_code<boost::spirit::tag::space, boost::spirit::char_encoding::standard> >, 0l>; Attr = std::vector<double>]'
test.cpp:14:2:   required from here
/home/ulfi/include/boost/spirit/home/qi/numeric/detail/real_impl.hpp:72:47: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
             if (is_floating_point<T>() && exp > max_exp)
                                               ^
In file included from /home/ulfi/include/boost/spirit/home/qi/numeric/numeric_utils.hpp:17:0,
                 from /home/ulfi/include/boost/spirit/home/qi/numeric/int.hpp:17,
                 from /home/ulfi/include/boost/spirit/home/qi/numeric.hpp:15,
                 from /home/ulfi/include/boost/spirit/home/qi.hpp:22,
                 from /home/ulfi/include/boost/spirit/include/qi.hpp:16,
                 from test.cpp:1:
/home/ulfi/include/boost/spirit/home/qi/numeric/detail/numeric_utils.hpp: In instantiation of 'static bool boost::spirit::qi::detail::extract_int<T, Radix, MinDigits, MaxDigits, Accumulator, Accumulate, IgnoreOverflowDigits>::parse_main(Iterator&, const Iterator&, Attribute&) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Attribute = long unsigned int; T = long unsigned int; unsigned int Radix = 10u; unsigned int MinDigits = 1u; int MaxDigits = -1; Accumulator = boost::spirit::qi::detail::positive_accumulator<10u>; bool Accumulate = true; bool IgnoreOverflowDigits = true]':
/home/ulfi/include/boost/spirit/home/qi/numeric/detail/numeric_utils.hpp:371:30:   required from 'static bool boost::spirit::qi::detail::extract_int<T, Radix, MinDigits, MaxDigits, Accumulator, Accumulate, IgnoreOverflowDigits>::parse(Iterator&, const Iterator&, Attribute&) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Attribute = long unsigned int; T = long unsigned int; unsigned int Radix = 10u; unsigned int MinDigits = 1u; int MaxDigits = -1; Accumulator = boost::spirit::qi::detail::positive_accumulator<10u>; bool Accumulate = true; bool IgnoreOverflowDigits = true]'
/home/ulfi/include/boost/spirit/home/qi/numeric/numeric_utils.hpp:72:37:   required from 'static bool boost::spirit::qi::extract_uint<T, Radix, MinDigits, MaxDigits, Accumulate, IgnoreOverflowDigits>::call(Iterator&, const Iterator&, T&) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; T = long unsigned int; unsigned int Radix = 10u; unsigned int MinDigits = 1u; int MaxDigits = -1; bool Accumulate = true; bool IgnoreOverflowDigits = true]'
/home/ulfi/include/boost/spirit/home/qi/numeric/real_policies.hpp:60:74:   required from 'static bool boost::spirit::qi::ureal_policies<T>::parse_frac_n(Iterator&, const Iterator&, Attribute&, int&) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Attribute = long unsigned int; T = double]'
/home/ulfi/include/boost/spirit/home/qi/numeric/detail/real_impl.hpp:234:17:   required from 'static bool boost::spirit::qi::detail::real_impl<T, RealPolicies>::parse(Iterator&, const Iterator&, Attribute&, const RealPolicies&) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Attribute = double; T = double; RealPolicies = boost::spirit::qi::real_policies<double>]'
/home/ulfi/include/boost/spirit/home/qi/numeric/real.hpp:168:34:   required from 'bool boost::spirit::qi::any_real_parser<T, RealPolicies>::parse(Iterator&, const Iterator&, Context&, const Skipper&, T&) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Context = boost::spirit::context<boost::fusion::cons<std::vector<double>&, boost::fusion::nil_>, boost::spirit::locals<> >; Skipper = boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::space, boost::spirit::char_encoding::standard> >; T = double; RealPolicies = boost::spirit::qi::real_policies<double>]'
/home/ulfi/include/boost/spirit/home/qi/detail/fail_function.hpp:38:20:   [ skipping 3 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/home/ulfi/include/boost/spirit/home/qi/detail/pass_container.hpp:351:38:   required from 'bool boost::spirit::qi::detail::pass_container<F, Attr, Sequence>::operator()(const Component&) const [with Component = boost::spirit::qi::any_real_parser<double, boost::spirit::qi::real_policies<double> >; F = boost::spirit::qi::detail::fail_function<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, boost::spirit::context<boost::fusion::cons<std::vector<double>&, boost::fusion::nil_>, boost::spirit::locals<> >, boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::space, boost::spirit::char_encoding::standard> > >; Attr = std::vector<double>; Sequence = mpl_::bool_<false>]'
/home/ulfi/include/boost/spirit/home/qi/operator/list.hpp:65:19:   required from 'bool boost::spirit::qi::list<Left, Right>::parse_container(F) const [with F = boost::spirit::qi::detail::pass_container<boost::spirit::qi::detail::fail_function<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, boost::spirit::context<boost::fusion::cons<std::vector<double>&, boost::fusion::nil_>, boost::spirit::locals<> >, boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::space, boost::spirit::char_encoding::standard> > >, std::vector<double>, mpl_::bool_<false> >; Left = boost::spirit::qi::any_real_parser<double, boost::spirit::qi::real_policies<double> >; Right = boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard, true, false>]'
/home/ulfi/include/boost/spirit/home/qi/operator/list.hpp:93:33:   required from 'bool boost::spirit::qi::list<Left, Right>::parse(Iterator&, const Iterator&, Context&, const Skipper&, Attribute&) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Context = boost::spirit::context<boost::fusion::cons<std::vector<double>&, boost::fusion::nil_>, boost::spirit::locals<> >; Skipper = boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::space, boost::spirit::char_encoding::standard> >; Attribute = std::vector<double>; Left = boost::spirit::qi::any_real_parser<double, boost::spirit::qi::real_policies<double> >; Right = boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard, true, false>]'
/home/ulfi/include/boost/spirit/home/qi/parse.hpp:164:13:   required from 'bool boost::spirit::qi::phrase_parse(Iterator&, Iterator, const Expr&, const Skipper&, boost::spirit::qi::skip_flag::enum_type, Attr&) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Expr = boost::proto::exprns_::expr<boost::proto::tagns_::tag::modulus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::double_>&, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const char&>, 0l> >, 2l>; Skipper = boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<boost::spirit::tag::char_code<boost::spirit::tag::space, boost::spirit::char_encoding::standard> >, 0l>; Attr = std::vector<double>]'
/home/ulfi/include/boost/spirit/home/qi/parse.hpp:210:32:   required from 'bool boost::spirit::qi::phrase_parse(const Iterator&, Iterator, const Expr&, const Skipper&, Attr&) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Expr = boost::proto::exprns_::expr<boost::proto::tagns_::tag::modulus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::double_>&, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const char&>, 0l> >, 2l>; Skipper = boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<boost::spirit::tag::char_code<boost::spirit::tag::space, boost::spirit::char_encoding::standard> >, 0l>; Attr = std::vector<double>]'
test.cpp:14:2:   required from here
/home/ulfi/include/boost/spirit/home/qi/numeric/detail/numeric_utils.hpp:319:66: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
      while (it != last && *it == '0' && leading_zeros < MaxDigits
                                                       ^
$ valgrind ./test
==2075== Memcheck, a memory error detector
==2075== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
==2075== Using Valgrind-3.10.1 and LibVEX; rerun with -h for copyright info
==2075== Command: ./test
==2075== 
1_59
==2075== Conditional jump or move depends on uninitialised value(s)
==2075==    at 0x40318E: bool boost::spirit::qi::detail::real_impl<double, boost::spirit::qi::real_policies<double> >::parse<__gnu_cxx::__normal_iterator<char*, std::string>, double>(__gnu_cxx::__normal_iterator<char*, std::string>&, __gnu_cxx::__normal_iterator<char*, std::string> const&, double&, boost::spirit::qi::real_policies<double> const&) (real_impl.hpp:295)
==2075==    by 0x402DA6: bool boost::spirit::qi::any_real_parser<double, boost::spirit::qi::real_policies<double> >::parse<__gnu_cxx::__normal_iterator<char*, std::string>, boost::spirit::context<boost::fusion::cons<std::vector<double, std::allocator<double> >&, boost::fusion::nil_>, boost::spirit::locals<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na> >, boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::space, boost::spirit::char_encoding::standard> > >(__gnu_cxx::__normal_iterator<char*, std::string>&, __gnu_cxx::__normal_iterator<char*, std::string> const&, boost::spirit::context<boost::fusion::cons<std::vector<double, std::allocator<double> >&, boost::fusion::nil_>, boost::spirit::locals<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na> >&, boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::space, boost::spirit::char_encoding::standard> > const&, double&) const (real.hpp:168)
==2075==    by 0x402BC6: bool boost::spirit::qi::detail::fail_function<__gnu_cxx::__normal_iterator<char*, std::string>, boost::spirit::context<boost::fusion::cons<std::vector<double, std::allocator<double> >&, boost::fusion::nil_>, boost::spirit::locals<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na> >, boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::space, boost::spirit::char_encoding::standard> > >::operator()<boost::spirit::qi::any_real_parser<double, boost::spirit::qi::real_policies<double> >, double>(boost::spirit::qi::any_real_parser<double, boost::spirit::qi::real_policies<double> > const&, double&) const (fail_function.hpp:38)
==2075==    by 0x402919: bool boost::spirit::qi::detail::pass_container<boost::spirit::qi::detail::fail_function<__gnu_cxx::__normal_iterator<char*, std::string>, boost::spirit::context<boost::fusion::cons<std::vector<double, std::allocator<double> >&, boost::fusion::nil_>, boost::spirit::locals<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na> >, boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::space, boost::spirit::char_encoding::standard> > >, std::vector<double, std::allocator<double> >, mpl_::bool_<false> >::dispatch_container<boost::spirit::qi::any_real_parser<double, boost::spirit::qi::real_policies<double> > >(boost::spirit::qi::any_real_parser<double, boost::spirit::qi::real_policies<double> > const&, mpl_::bool_<false>) const (pass_container.hpp:283)
==2075==    by 0x402745: bool boost::spirit::qi::detail::pass_container<boost::spirit::qi::detail::fail_function<__gnu_cxx::__normal_iterator<char*, std::string>, boost::spirit::context<boost::fusion::cons<std::vector<double, std::allocator<double> >&, boost::fusion::nil_>, boost::spirit::locals<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na> >, boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::space, boost::spirit::char_encoding::standard> > >, std::vector<double, std::allocator<double> >, mpl_::bool_<false> >::dispatch_attribute<boost::spirit::qi::any_real_parser<double, boost::spirit::qi::real_policies<double> > >(boost::spirit::qi::any_real_parser<double, boost::spirit::qi::real_policies<double> > const&, mpl_::bool_<true>) const (pass_container.hpp:331)
==2075==    by 0x4023C0: bool boost::spirit::qi::detail::pass_container<boost::spirit::qi::detail::fail_function<__gnu_cxx::__normal_iterator<char*, std::string>, boost::spirit::context<boost::fusion::cons<std::vector<double, std::allocator<double> >&, boost::fusion::nil_>, boost::spirit::locals<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na> >, boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::space, boost::spirit::char_encoding::standard> > >, std::vector<double, std::allocator<double> >, mpl_::bool_<false> >::operator()<boost::spirit::qi::any_real_parser<double, boost::spirit::qi::real_policies<double> > >(boost::spirit::qi::any_real_parser<double, boost::spirit::qi::real_policies<double> > const&) const (pass_container.hpp:351)
==2075==    by 0x4021A6: bool boost::spirit::qi::list<boost::spirit::qi::any_real_parser<double, boost::spirit::qi::real_policies<double> >, boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard, true, false> >::parse_container<boost::spirit::qi::detail::pass_container<boost::spirit::qi::detail::fail_function<__gnu_cxx::__normal_iterator<char*, std::string>, boost::spirit::context<boost::fusion::cons<std::vector<double, std::allocator<double> >&, boost::fusion::nil_>, boost::spirit::locals<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na> >, boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::space, boost::spirit::char_encoding::standard> > >, std::vector<double, std::allocator<double> >, mpl_::bool_<false> > >(boost::spirit::qi::detail::pass_container<boost::spirit::qi::detail::fail_function<__gnu_cxx::__normal_iterator<char*, std::string>, boost::spirit::context<boost::fusion::cons<std::vector<double, std::allocator<double> >&, boost::fusion::nil_>, boost::spirit::locals<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na> >, boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::space, boost::spirit::char_encoding::standard> > >, std::vector<double, std::allocator<double> >, mpl_::bool_<false> >) const (list.hpp:70)
==2075==    by 0x401F0B: bool boost::spirit::qi::list<boost::spirit::qi::any_real_parser<double, boost::spirit::qi::real_policies<double> >, boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard, true, false> >::parse<__gnu_cxx::__normal_iterator<char*, std::string>, boost::spirit::context<boost::fusion::cons<std::vector<double, std::allocator<double> >&, boost::fusion::nil_>, boost::spirit::locals<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na> >, boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::space, boost::spirit::char_encoding::standard> >, std::vector<double, std::allocator<double> > >(__gnu_cxx::__normal_iterator<char*, std::string>&, __gnu_cxx::__normal_iterator<char*, std::string> const&, boost::spirit::context<boost::fusion::cons<std::vector<double, std::allocator<double> >&, boost::fusion::nil_>, boost::spirit::locals<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na> >&, boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::space, boost::spirit::char_encoding::standard> > const&, std::vector<double, std::allocator<double> >&) const (list.hpp:93)
==2075==    by 0x401D06: bool boost::spirit::qi::phrase_parse<__gnu_cxx::__normal_iterator<char*, std::string>, boost::proto::exprns_::expr<boost::proto::tagns_::tag::modulus, boost::proto::argsns_::list2<boost::spirit::terminal<boost::spirit::tag::double_> const&, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<char const&>, 0l> >, 2l>, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<boost::spirit::tag::char_code<boost::spirit::tag::space, boost::spirit::char_encoding::standard> >, 0l>, std::vector<double, std::allocator<double> > >(__gnu_cxx::__normal_iterator<char*, std::string>&, __gnu_cxx::__normal_iterator<char*, std::string>, boost::proto::exprns_::expr<boost::proto::tagns_::tag::modulus, boost::proto::argsns_::list2<boost::spirit::terminal<boost::spirit::tag::double_> const&, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<char const&>, 0l> >, 2l> const&, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<boost::spirit::tag::char_code<boost::spirit::tag::space, boost::spirit::char_encoding::standard> >, 0l> const&, boost::spirit::qi::skip_flag::enum_type, std::vector<double, std::allocator<double> >&) (parse.hpp:164)
==2075==    by 0x401B8C: bool boost::spirit::qi::phrase_parse<__gnu_cxx::__normal_iterator<char*, std::string>, boost::proto::exprns_::expr<boost::proto::tagns_::tag::modulus, boost::proto::argsns_::list2<boost::spirit::terminal<boost::spirit::tag::double_> const&, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<char const&>, 0l> >, 2l>, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<boost::spirit::tag::char_code<boost::spirit::tag::space, boost::spirit::char_encoding::standard> >, 0l>, std::vector<double, std::allocator<double> > >(__gnu_cxx::__normal_iterator<char*, std::string> const&, __gnu_cxx::__normal_iterator<char*, std::string>, boost::proto::exprns_::expr<boost::proto::tagns_::tag::modulus, boost::proto::argsns_::list2<boost::spirit::terminal<boost::spirit::tag::double_> const&, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<char const&>, 0l> >, 2l> const&, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<boost::spirit::tag::char_code<boost::spirit::tag::space, boost::spirit::char_encoding::standard> >, 0l> const&, std::vector<double, std::allocator<double> >&) (parse.hpp:210)
==2075==    by 0x401153: main (test.cpp:14)
==2075== 
1 119 80 35 0 29 0.263 29 1 ==2075== 
==2075== HEAP SUMMARY:
==2075==     in use at exit: 72,704 bytes in 1 blocks
==2075==   total heap usage: 7 allocs, 6 frees, 73,008 bytes allocated
==2075== 
==2075== LEAK SUMMARY:
==2075==    definitely lost: 0 bytes in 0 blocks
==2075==    indirectly lost: 0 bytes in 0 blocks
==2075==      possibly lost: 0 bytes in 0 blocks
==2075==    still reachable: 72,704 bytes in 1 blocks
==2075==         suppressed: 0 bytes in 0 blocks
==2075== Rerun with --leak-check=full to see details of leaked memory
==2075== 
==2075== For counts of detected and suppressed errors, rerun with: -v
==2075== Use --track-origins=yes to see where uninitialised values come from
==2075== ERROR SUMMARY: 6 errors from 1 contexts (suppressed: 0 from 0)



