$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r74566 - trunk/boost/fusion/support
From: mr.chr.schmidt_at_[hidden]
Date: 2011-09-25 13:36:13
Author: cschmidt
Date: 2011-09-25 13:36:13 EDT (Sun, 25 Sep 2011)
New Revision: 74566
URL: http://svn.boost.org/trac/boost/changeset/74566
Log:
Fusion: updates
Text files modified: 
   trunk/boost/fusion/support/tag_of.hpp     |    12 +++++++++---                            
   trunk/boost/fusion/support/tag_of_fwd.hpp |     3 +++                                     
   2 files changed, 12 insertions(+), 3 deletions(-)
Modified: trunk/boost/fusion/support/tag_of.hpp
==============================================================================
--- trunk/boost/fusion/support/tag_of.hpp	(original)
+++ trunk/boost/fusion/support/tag_of.hpp	2011-09-25 13:36:13 EDT (Sun, 25 Sep 2011)
@@ -51,10 +51,16 @@
     namespace traits
     {
         template <typename Sequence, typename Active>
+        struct tag_of_fallback
+        {
+            typedef non_fusion_tag type;
+        };
+
+        template <typename Sequence, typename Active>
         struct tag_of
-          : mpl::if_< fusion::detail::is_mpl_sequence<Sequence>,
-              mpl::identity<mpl_sequence_tag>,
-              mpl::identity<non_fusion_tag> >::type
+          : mpl::eval_if< fusion::detail::is_mpl_sequence<Sequence>,
+              mpl::identity<mpl::identity<mpl_sequence_tag> >,
+              tag_of_fallback<Sequence> >::type
         {};
 
         template <typename Sequence>
Modified: trunk/boost/fusion/support/tag_of_fwd.hpp
==============================================================================
--- trunk/boost/fusion/support/tag_of_fwd.hpp	(original)
+++ trunk/boost/fusion/support/tag_of_fwd.hpp	2011-09-25 13:36:13 EDT (Sun, 25 Sep 2011)
@@ -12,6 +12,9 @@
 {
     namespace traits
     {
+        template <typename Sequence, typename Active = void>
+        struct tag_of_fallback;
+
         template<typename T, typename Active = void>
         struct tag_of;
     }