diff --git a/include/boost/phoenix/core/actor.hpp b/include/boost/phoenix/core/actor.hpp index d4a0f77..200cb15 100644 --- a/include/boost/phoenix/core/actor.hpp +++ b/include/boost/phoenix/core/actor.hpp @@ -150,7 +150,7 @@ namespace boost { namespace phoenix , phoenix_domain , proto_base_expr , A0 - >::type + >::type const operator=(A0 const & a0) const { return proto::make_expr(this->proto_expr_, a0); @@ -162,14 +162,38 @@ namespace boost { namespace phoenix , phoenix_domain , proto_base_expr , A0 - >::type + >::type const operator=(A0 & a0) const { return proto::make_expr(this->proto_expr_, a0); } + + template + typename proto::result_of::make_expr< + proto::tag::subscript + , phoenix_domain + , proto_base_expr + , A0 + >::type const + operator[](A0 const & a0) const + { + return proto::make_expr(this->proto_expr_, a0); + } + + template + typename proto::result_of::make_expr< + proto::tag::subscript + , phoenix_domain + , proto_base_expr + , A0 + >::type const + operator[](A0 & a0) const + { + return proto::make_expr(this->proto_expr_, a0); + } //BOOST_PROTO_EXTENDS_ASSIGN_() - BOOST_PROTO_EXTENDS_SUBSCRIPT() + //BOOST_PROTO_EXTENDS_SUBSCRIPT() template struct result; @@ -222,7 +246,7 @@ namespace boost template struct result_of const()> - : result_of::proto_base_expr>()> + : phoenix::result_of::actor::proto_base_expr> {}; }