diff DEPENDENCIES/generic/include/boost/spirit/home/support/container.hpp @ 101:c530137014c0

Update Boost headers (1.58.0)
author Chris Cannam
date Mon, 07 Sep 2015 11:12:49 +0100
parents 2665513ce2d3
children
line wrap: on
line diff
--- a/DEPENDENCIES/generic/include/boost/spirit/home/support/container.hpp	Fri Sep 04 12:01:02 2015 +0100
+++ b/DEPENDENCIES/generic/include/boost/spirit/home/support/container.hpp	Mon Sep 07 11:12:49 2015 +0100
@@ -59,6 +59,19 @@
       : is_container<T>
     {};
 
+#if !defined(BOOST_VARIANT_DO_NOT_USE_VARIADIC_TEMPLATES)
+    template<typename T>
+    struct is_container<boost::variant<T> >
+      : is_container<T>
+    {};
+
+    template<typename T0, typename T1, typename ...TN>
+    struct is_container<boost::variant<T0, T1, TN...> >
+      : mpl::bool_<is_container<T0>::value ||
+            is_container<boost::variant<T1, TN...> >::value>
+    {};
+
+#else
 #define BOOST_SPIRIT_IS_CONTAINER(z, N, data)                                 \
         is_container<BOOST_PP_CAT(T, N)>::value ||                            \
     /***/
@@ -76,6 +89,7 @@
     {};
 
 #undef BOOST_SPIRIT_IS_CONTAINER
+#endif
 
     template <typename T, typename Enable/* = void*/>
     struct is_iterator_range
@@ -238,7 +252,7 @@
 
         static bool is_valid(boost::optional<T> const& val)
         {
-            return val;
+            return !!val;
         }
     };