2
0
mirror of https://github.com/boostorg/phoenix.git synced 2026-02-15 01:12:09 +00:00

[phoenix]

- fixed dangling reference int operator[] expression template creation



[SVN r71203]
This commit is contained in:
Thomas Heller
2011-04-12 15:54:57 +00:00
parent b530fed014
commit 63e12d5c12

View File

@@ -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<proto::tag::assign, phoenix_domain>(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<proto::tag::assign, phoenix_domain>(this->proto_expr_, a0);
}
template <typename A0>
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<proto::tag::subscript, phoenix_domain>(this->proto_expr_, a0);
}
template <typename A0>
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<proto::tag::subscript, phoenix_domain>(this->proto_expr_, a0);
}
//BOOST_PROTO_EXTENDS_ASSIGN_()
BOOST_PROTO_EXTENDS_SUBSCRIPT()
//BOOST_PROTO_EXTENDS_SUBSCRIPT()
template <typename Sig>
struct result;
@@ -222,7 +246,7 @@ namespace boost
template <typename Expr>
struct result_of<phoenix::actor<Expr> const()>
: result_of<phoenix::actor<typename phoenix::actor<Expr>::proto_base_expr>()>
: phoenix::result_of::actor<typename phoenix::actor<Expr>::proto_base_expr>
{};
}