summaryrefslogtreecommitdiff
path: root/boost/proto/fusion.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/proto/fusion.hpp')
-rw-r--r--boost/proto/fusion.hpp21
1 files changed, 10 insertions, 11 deletions
diff --git a/boost/proto/fusion.hpp b/boost/proto/fusion.hpp
index c35a0741a6..198a34503d 100644
--- a/boost/proto/fusion.hpp
+++ b/boost/proto/fusion.hpp
@@ -44,12 +44,11 @@ namespace boost { namespace proto
: fusion::iterator_base<expr_iterator<Expr, Pos> >
{
typedef Expr expr_type;
- typedef typename Expr::proto_tag proto_tag;
static const long index = Pos;
typedef fusion::random_access_traversal_tag category;
typedef tag::proto_expr_iterator fusion_tag;
- expr_iterator(Expr &e)
+ explicit expr_iterator(Expr &e)
: expr(e)
{}
@@ -60,7 +59,6 @@ namespace boost { namespace proto
struct flat_view
{
typedef Expr expr_type;
- typedef typename Expr::proto_tag proto_tag;
typedef fusion::forward_traversal_tag category;
typedef tag::proto_flat_view fusion_tag;
@@ -373,7 +371,7 @@ namespace boost { namespace fusion
struct apply
{
typedef
- typename proto::detail::expr_iterator<
+ proto::detail::expr_iterator<
typename Iterator::expr_type
, Iterator::index + N::value
>
@@ -583,12 +581,14 @@ namespace boost { namespace fusion
template<typename Sequence>
struct apply
{
- typedef typename Sequence::proto_tag proto_tag;
+ typedef typename Sequence::expr_type::proto_tag proto_tag;
- typedef fusion::transform_view<
- typename Sequence::expr_type
- , proto::detail::as_element<proto_tag>
- > type;
+ typedef
+ fusion::transform_view<
+ typename Sequence::expr_type
+ , proto::detail::as_element<proto_tag>
+ >
+ type;
static type call(Sequence &sequence)
{
@@ -639,7 +639,6 @@ namespace boost { namespace fusion
: mpl::false_
{};
}
-
}}
namespace boost { namespace mpl
@@ -655,7 +654,7 @@ namespace boost { namespace mpl
{
typedef fusion::fusion_sequence_tag type;
};
-}}
+}}
#ifdef BOOST_MSVC
#pragma warning(pop)