Boost logo

Boost Users :

Subject: [Boost-users] [Proto] result_of::value
From: Hossein Haeri (powerprogman_at_[hidden])
Date: 2011-01-05 17:40:32


Dear all,

I have a piece of code in which contains:

template<typename L, typename R>
void FuncStreamCtx::operator () (tag::shift_right, const L& l, const R& r) const
{
        evaluate_helper(l, *this);
        const typename result_of::value<R>::type f = value(r);
}

When I compile this under GCC 4.5.1 (MinGW, WinXP, SP3), I get a large spew of warnings. My related piece of code which I guess would be helpful is:

double plus1(double i) {return i + 1;}
double plus2(double i) {return i + 2;}

struct FuncStreamCtx: callable_context<const FuncStreamCtx, null_context>
{
        FuncStreamCtx() {}

        typedef void result_type;

        void operator () (tag::terminal, double) const;

        template<typename L, typename R>
        void operator () (tag::shift_right, const L&, const R&) const;

        const vector<double>& state() const {return data_;}
private:
        void set_single_value(double) const;

        mutable vector<double> data_;
};

template<typename Expr>
const vector<double>& evaluate_helper(const Expr& e, const FuncStreamCtx& ctx)
{
        boost::proto::eval(e, ctx);
        return ctx.state();
}

template<typename Expr>
void evaluate(const Expr& e, vector<double>& v)
{
        const FuncStreamCtx ctx;
        v = evaluate_helper(e, ctx);
}

template<typename L, typename R>
void FuncStreamCtx::operator () (tag::shift_right, const L& l, const R& r) const
{
        evaluate_helper(l, *this);
        const typename result_of::value<R>::type f = value(r);
}

int main()
{
        vector<double> v;
        evaluate(lit(51.6) >> &plus2 >> &plus2 >> &plus1, v);
        cout << "Result = ";
        copy(v.begin(), v.end(), ostream_iterator<double>(cout, " "));

        return 0;
}

I have also included the warnings in the P.S. Any idea what the compiler is saying? And, should I do anything about it?

TIA,
--Hossein

P.S.

-------------- Build: Debug in ProtoGame3 ---------------

Compiling: main.cpp
D:\My Documents\My Programmes\Tutorial\Proto\ProtoGame3\main.cpp: In member function 'void FuncStreamCtx::operator()(boost::proto::tag::shift_right, const L&, const R&) const [with L = boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::utility::literal<const double&, boost::proto::domainns_::default_domain>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>, R = boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l>]':
D:\Sources\Boost\boost_1_42_0/boost/proto/context/callable.hpp:313:21: instantiated from 'boost::proto::context::callable_eval<Expr, Context, 2l>::result_type boost::proto::context::callable_eval<Expr, Context, 2l>::operator()(Expr&, Context&) const [with Expr = const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::utility::literal<const double&, boost::proto::domainns_::default_domain>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal,
 boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>, Context = const FuncStreamCtx, boost::proto::context::callable_eval<Expr, Context, 2l>::result_type = void]'
D:\Sources\Boost\boost_1_42_0/boost/proto/eval.hpp:100:62: instantiated from 'typename boost::proto::result_of::eval<Expr, Context>::type boost::proto::eval(Expr&, const Context&) [with Expr = const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::utility::literal<const double&, boost::proto::domainns_::default_domain>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>, Context =
 FuncStreamCtx, typename boost::proto::result_of::eval<Expr, Context>::type = void]'
D:\My Documents\My Programmes\Tutorial\Proto\ProtoGame3\main.cpp:44:2: instantiated from 'const std::vector<double>& evaluate_helper(const Expr&, const FuncStreamCtx&) [with Expr = boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::utility::literal<const double&, boost::proto::domainns_::default_domain>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>]'
D:\My Documents\My Programmes\Tutorial\Proto\ProtoGame3\main.cpp:52:2: instantiated from 'void evaluate(const Expr&, std::vector<double>&) [with Expr = boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::utility::literal<const double&, boost::proto::domainns_::default_domain>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>]'
D:\My Documents\My Programmes\Tutorial\Proto\ProtoGame3\main.cpp:80:53: instantiated from here
D:\My Documents\My Programmes\Tutorial\Proto\ProtoGame3\main.cpp:74:43: warning: unused variable 'f'
D:\My Documents\My Programmes\Tutorial\Proto\ProtoGame3\main.cpp: In member function 'void FuncStreamCtx::operator()(boost::proto::tag::shift_right, const L&, const R&) const [with L = boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::utility::literal<const double&, boost::proto::domainns_::default_domain>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>, R = boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l>]':
D:\Sources\Boost\boost_1_42_0/boost/proto/context/callable.hpp:313:21: instantiated from 'boost::proto::context::callable_eval<Expr, Context, 2l>::result_type boost::proto::context::callable_eval<Expr, Context, 2l>::operator()(Expr&, Context&) const [with Expr = const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::utility::literal<const double&, boost::proto::domainns_::default_domain>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>, Context = const FuncStreamCtx, boost::proto::context::callable_eval<Expr, Context, 2l>::result_type = void]'
D:\Sources\Boost\boost_1_42_0/boost/proto/eval.hpp:100:62: instantiated from 'typename boost::proto::result_of::eval<Expr, Context>::type boost::proto::eval(Expr&, const Context&) [with Expr = const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::utility::literal<const double&, boost::proto::domainns_::default_domain>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>, Context = FuncStreamCtx, typename boost::proto::result_of::eval<Expr, Context>::type = void]'
D:\My Documents\My Programmes\Tutorial\Proto\ProtoGame3\main.cpp:44:2: instantiated from 'const std::vector<double>& evaluate_helper(const Expr&, const FuncStreamCtx&) [with Expr = boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::utility::literal<const double&, boost::proto::domainns_::default_domain>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>]'
D:\My Documents\My Programmes\Tutorial\Proto\ProtoGame3\main.cpp:73:2: instantiated from 'void FuncStreamCtx::operator()(boost::proto::tag::shift_right, const L&, const R&) const [with L = boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::utility::literal<const double&, boost::proto::domainns_::default_domain>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>, R = boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l>]'
D:\Sources\Boost\boost_1_42_0/boost/proto/context/callable.hpp:313:21: instantiated from 'boost::proto::context::callable_eval<Expr, Context, 2l>::result_type boost::proto::context::callable_eval<Expr, Context, 2l>::operator()(Expr&, Context&) const [with Expr = const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::utility::literal<const double&, boost::proto::domainns_::default_domain>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal,
 boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>, Context = const FuncStreamCtx, boost::proto::context::callable_eval<Expr, Context, 2l>::result_type = void]'
D:\Sources\Boost\boost_1_42_0/boost/proto/eval.hpp:100:62: instantiated from 'typename boost::proto::result_of::eval<Expr, Context>::type boost::proto::eval(Expr&, const Context&) [with Expr = const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::utility::literal<const double&, boost::proto::domainns_::default_domain>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>, Context =
 FuncStreamCtx, typename boost::proto::result_of::eval<Expr, Context>::type = void]'
D:\My Documents\My Programmes\Tutorial\Proto\ProtoGame3\main.cpp:44:2: instantiated from 'const std::vector<double>& evaluate_helper(const Expr&, const FuncStreamCtx&) [with Expr = boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::utility::literal<const double&, boost::proto::domainns_::default_domain>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>]'
D:\My Documents\My Programmes\Tutorial\Proto\ProtoGame3\main.cpp:52:2: instantiated from 'void evaluate(const Expr&, std::vector<double>&) [with Expr = boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::utility::literal<const double&, boost::proto::domainns_::default_domain>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>]'
D:\My Documents\My Programmes\Tutorial\Proto\ProtoGame3\main.cpp:80:53: instantiated from here
D:\My Documents\My Programmes\Tutorial\Proto\ProtoGame3\main.cpp:74:43: warning: unused variable 'f'
D:\My Documents\My Programmes\Tutorial\Proto\ProtoGame3\main.cpp: In member function 'void FuncStreamCtx::operator()(boost::proto::tag::shift_right, const L&, const R&) const [with L = boost::proto::utility::literal<const double&, boost::proto::domainns_::default_domain>, R = boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l>]':
D:\Sources\Boost\boost_1_42_0/boost/proto/context/callable.hpp:313:21: instantiated from 'boost::proto::context::callable_eval<Expr, Context, 2l>::result_type boost::proto::context::callable_eval<Expr, Context, 2l>::operator()(Expr&, Context&) const [with Expr = const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::utility::literal<const double&, boost::proto::domainns_::default_domain>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>, Context = const FuncStreamCtx, boost::proto::context::callable_eval<Expr, Context, 2l>::result_type = void]'
D:\Sources\Boost\boost_1_42_0/boost/proto/eval.hpp:100:62: instantiated from 'typename boost::proto::result_of::eval<Expr, Context>::type boost::proto::eval(Expr&, const Context&) [with Expr = const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::utility::literal<const double&, boost::proto::domainns_::default_domain>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>, Context = FuncStreamCtx, typename boost::proto::result_of::eval<Expr, Context>::type = void]'
D:\My Documents\My Programmes\Tutorial\Proto\ProtoGame3\main.cpp:44:2: instantiated from 'const std::vector<double>& evaluate_helper(const Expr&, const FuncStreamCtx&) [with Expr = boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::utility::literal<const double&, boost::proto::domainns_::default_domain>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>]'
D:\My Documents\My Programmes\Tutorial\Proto\ProtoGame3\main.cpp:73:2: instantiated from 'void FuncStreamCtx::operator()(boost::proto::tag::shift_right, const L&, const R&) const [with L = boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::utility::literal<const double&, boost::proto::domainns_::default_domain>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>, R = boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l>]'
D:\Sources\Boost\boost_1_42_0/boost/proto/context/callable.hpp:313:21: instantiated from 'boost::proto::context::callable_eval<Expr, Context, 2l>::result_type boost::proto::context::callable_eval<Expr, Context, 2l>::operator()(Expr&, Context&) const [with Expr = const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::utility::literal<const double&, boost::proto::domainns_::default_domain>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>, Context = const FuncStreamCtx, boost::proto::context::callable_eval<Expr, Context, 2l>::result_type = void]'
D:\Sources\Boost\boost_1_42_0/boost/proto/eval.hpp:100:62: [ skipping 2 instantiation contexts ]
D:\My Documents\My Programmes\Tutorial\Proto\ProtoGame3\main.cpp:73:2: instantiated from 'void FuncStreamCtx::operator()(boost::proto::tag::shift_right, const L&, const R&) const [with L = boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::utility::literal<const double&, boost::proto::domainns_::default_domain>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>, R = boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l>]'
D:\Sources\Boost\boost_1_42_0/boost/proto/context/callable.hpp:313:21: instantiated from 'boost::proto::context::callable_eval<Expr, Context, 2l>::result_type boost::proto::context::callable_eval<Expr, Context, 2l>::operator()(Expr&, Context&) const [with Expr = const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::utility::literal<const double&, boost::proto::domainns_::default_domain>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal,
 boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>, Context = const FuncStreamCtx, boost::proto::context::callable_eval<Expr, Context, 2l>::result_type = void]'
D:\Sources\Boost\boost_1_42_0/boost/proto/eval.hpp:100:62: instantiated from 'typename boost::proto::result_of::eval<Expr, Context>::type boost::proto::eval(Expr&, const Context&) [with Expr = const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::utility::literal<const double&, boost::proto::domainns_::default_domain>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>, Context =
 FuncStreamCtx, typename boost::proto::result_of::eval<Expr, Context>::type = void]'
D:\My Documents\My Programmes\Tutorial\Proto\ProtoGame3\main.cpp:44:2: instantiated from 'const std::vector<double>& evaluate_helper(const Expr&, const FuncStreamCtx&) [with Expr = boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::utility::literal<const double&, boost::proto::domainns_::default_domain>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>]'
D:\My Documents\My Programmes\Tutorial\Proto\ProtoGame3\main.cpp:52:2: instantiated from 'void evaluate(const Expr&, std::vector<double>&) [with Expr = boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::utility::literal<const double&, boost::proto::domainns_::default_domain>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<double (* const&)(double)>, 0l> >, 2l>]'
D:\My Documents\My Programmes\Tutorial\Proto\ProtoGame3\main.cpp:80:53: instantiated from here
D:\My Documents\My Programmes\Tutorial\Proto\ProtoGame3\main.cpp:74:43: warning: unused variable 'f'
Linking console executable: bin\Debug\ProtoGame3.exe
Output size is 1.08 MB
Process terminated with status 0 (0 minutes, 4 seconds)
1 errors, 3 warnings
 


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net