diff options
Diffstat (limited to '3rdParty/Boost/src/boost/fusion/support/detail')
6 files changed, 242 insertions, 0 deletions
diff --git a/3rdParty/Boost/src/boost/fusion/support/detail/access.hpp b/3rdParty/Boost/src/boost/fusion/support/detail/access.hpp new file mode 100644 index 0000000..af7374c --- /dev/null +++ b/3rdParty/Boost/src/boost/fusion/support/detail/access.hpp @@ -0,0 +1,64 @@ +/*============================================================================= + Copyright (c) 2001-2006 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_ACCESS_04182005_0737) +#define FUSION_ACCESS_04182005_0737 + +#include <boost/type_traits/add_const.hpp> +#include <boost/type_traits/add_reference.hpp> + +namespace boost { namespace fusion { namespace detail +{ + template <typename T> + struct ref_result + { + typedef typename add_reference<typename T::type>::type type; + }; + + template <typename T> + struct cref_result + { + typedef typename + add_reference< + typename add_const<typename T::type>::type + >::type + type; + }; + + template <typename T> + struct call_param + { + typedef T const& type; + }; + + template <typename T> + struct call_param<T &> + { + typedef T& type; + }; + + template <typename T> + struct call_param<T const> + { + typedef T const& type; + }; + + template <typename T> + struct call_param<T volatile> + { + typedef T const& type; + }; + + template <typename T> + struct call_param<T const volatile> + { + typedef T const& type; + }; + +}}} + +#endif + diff --git a/3rdParty/Boost/src/boost/fusion/support/detail/as_fusion_element.hpp b/3rdParty/Boost/src/boost/fusion/support/detail/as_fusion_element.hpp new file mode 100644 index 0000000..2d02064 --- /dev/null +++ b/3rdParty/Boost/src/boost/fusion/support/detail/as_fusion_element.hpp @@ -0,0 +1,47 @@ +/*============================================================================= + Copyright (c) 1999-2003 Jaakko Jarvi + Copyright (c) 2001-2006 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_AS_FUSION_ELEMENT_05052005_0338) +#define FUSION_AS_FUSION_ELEMENT_05052005_0338 + +#include <boost/ref.hpp> + +namespace boost { namespace fusion { namespace detail +{ + template <typename T> + struct as_fusion_element + { + typedef T type; + }; + + template <typename T> + struct as_fusion_element<reference_wrapper<T> > + { + typedef T& type; + }; + + template <typename T, int N> + struct as_fusion_element<T[N]> + { + typedef const T(&type)[N]; + }; + + template <typename T, int N> + struct as_fusion_element<volatile T[N]> + { + typedef const volatile T(&type)[N]; + }; + + template <typename T, int N> + struct as_fusion_element<const volatile T[N]> + { + typedef const volatile T(&type)[N]; + }; + +}}} + +#endif diff --git a/3rdParty/Boost/src/boost/fusion/support/detail/category_of.hpp b/3rdParty/Boost/src/boost/fusion/support/detail/category_of.hpp new file mode 100644 index 0000000..04102cf --- /dev/null +++ b/3rdParty/Boost/src/boost/fusion/support/detail/category_of.hpp @@ -0,0 +1,19 @@ +/*============================================================================= + Copyright (c) 2001-2006 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_CATEGORY_OF_07212005_1025) +#define FUSION_CATEGORY_OF_07212005_1025 + +namespace boost { namespace fusion { namespace detail +{ + template <typename T> + struct fusion_category_of + { + typedef typename T::category type; + }; +}}} + +#endif diff --git a/3rdParty/Boost/src/boost/fusion/support/detail/is_mpl_sequence.hpp b/3rdParty/Boost/src/boost/fusion/support/detail/is_mpl_sequence.hpp new file mode 100644 index 0000000..b7e792b --- /dev/null +++ b/3rdParty/Boost/src/boost/fusion/support/detail/is_mpl_sequence.hpp @@ -0,0 +1,27 @@ +/*============================================================================= + Copyright (c) 2001-2006 Joel de Guzman + Copyright (c) 2005-2006 Dan Marsden + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_DETAIL_IS_MPL_SEQUENCE_29122006_1105) +#define FUSION_DETAIL_IS_MPL_SEQUENCE_29122006_1105 + +#include <boost/fusion/support/sequence_base.hpp> +#include <boost/mpl/is_sequence.hpp> +#include <boost/mpl/and.hpp> +#include <boost/mpl/not.hpp> +#include <boost/type_traits/is_convertible.hpp> + +namespace boost { namespace fusion { namespace detail +{ + template <typename T> + struct is_mpl_sequence + : mpl::and_< + mpl::not_<is_convertible<T, from_sequence_convertible_type> > + , mpl::is_sequence<T> > + {}; +}}} + +#endif diff --git a/3rdParty/Boost/src/boost/fusion/support/detail/is_view.hpp b/3rdParty/Boost/src/boost/fusion/support/detail/is_view.hpp new file mode 100644 index 0000000..5fa2f24 --- /dev/null +++ b/3rdParty/Boost/src/boost/fusion/support/detail/is_view.hpp @@ -0,0 +1,19 @@ +/*============================================================================= + Copyright (c) 2001-2006 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_IS_VIEW_03202006_0018) +#define FUSION_IS_VIEW_03202006_0018 + +namespace boost { namespace fusion { namespace detail +{ + template <typename T> + struct fusion_is_view + { + typedef typename T::is_view type; + }; +}}} + +#endif diff --git a/3rdParty/Boost/src/boost/fusion/support/detail/mpl_iterator_category.hpp b/3rdParty/Boost/src/boost/fusion/support/detail/mpl_iterator_category.hpp new file mode 100644 index 0000000..37a7fe9 --- /dev/null +++ b/3rdParty/Boost/src/boost/fusion/support/detail/mpl_iterator_category.hpp @@ -0,0 +1,66 @@ +/*============================================================================= + Copyright (c) 2001-2006 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_MPL_ITERATOR_CATEGORY_07212005_0923) +#define FUSION_MPL_ITERATOR_CATEGORY_07212005_0923 + +namespace boost { namespace mpl +{ + struct forward_iterator_tag; + struct bidirectional_iterator_tag; + struct random_access_iterator_tag; +}} + +namespace boost { namespace fusion +{ + struct forward_traversal_tag; + struct bidirectional_traversal_tag; + struct random_access_traversal_tag; +}} + +namespace boost { namespace fusion { namespace detail +{ + template <typename Category> + struct mpl_iterator_category; + + template <> + struct mpl_iterator_category<mpl::forward_iterator_tag> + { + typedef forward_traversal_tag type; + }; + + template <> + struct mpl_iterator_category<mpl::bidirectional_iterator_tag> + { + typedef bidirectional_traversal_tag type; + }; + + template <> + struct mpl_iterator_category<mpl::random_access_iterator_tag> + { + typedef random_access_traversal_tag type; + }; + + template <> + struct mpl_iterator_category<forward_traversal_tag> + { + typedef forward_traversal_tag type; + }; + + template <> + struct mpl_iterator_category<bidirectional_traversal_tag> + { + typedef bidirectional_traversal_tag type; + }; + + template <> + struct mpl_iterator_category<random_access_traversal_tag> + { + typedef random_access_traversal_tag type; + }; +}}} + +#endif |