|
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