forked from boostorg/fusion
Moving non-variadic map implementation to detail/cpp03 directory
[SVN r82701]
This commit is contained in:
@ -8,6 +8,7 @@
|
|||||||
#if !defined(BOOST_FUSION_SEQUENCE_CONTAINER_DEQUE_24112006_2036)
|
#if !defined(BOOST_FUSION_SEQUENCE_CONTAINER_DEQUE_24112006_2036)
|
||||||
#define BOOST_FUSION_SEQUENCE_CONTAINER_DEQUE_24112006_2036
|
#define BOOST_FUSION_SEQUENCE_CONTAINER_DEQUE_24112006_2036
|
||||||
|
|
||||||
|
#include <boost/fusion/container/deque/deque_fwd.hpp>
|
||||||
#include <boost/fusion/container/deque/deque.hpp>
|
#include <boost/fusion/container/deque/deque.hpp>
|
||||||
#include <boost/fusion/container/deque/convert.hpp>
|
#include <boost/fusion/container/deque/convert.hpp>
|
||||||
|
|
||||||
|
74
include/boost/fusion/container/deque/detail/build_deque.hpp
Normal file
74
include/boost/fusion/container/deque/detail/build_deque.hpp
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
/*=============================================================================
|
||||||
|
Copyright (c) 2005-2013 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(BOOST_FUSION_BUILD_DEQUE_02032013_1921)
|
||||||
|
#define BOOST_FUSION_BUILD_DEQUE_02032013_1921
|
||||||
|
|
||||||
|
#include <boost/fusion/iterator/equal_to.hpp>
|
||||||
|
#include <boost/fusion/iterator/next.hpp>
|
||||||
|
#include <boost/fusion/iterator/value_of.hpp>
|
||||||
|
#include <boost/fusion/iterator/deref.hpp>
|
||||||
|
#include <boost/fusion/sequence/intrinsic/begin.hpp>
|
||||||
|
#include <boost/fusion/sequence/intrinsic/end.hpp>
|
||||||
|
#include <boost/fusion/container/deque/front_extended_deque.hpp>
|
||||||
|
|
||||||
|
namespace boost { namespace fusion { namespace detail
|
||||||
|
{
|
||||||
|
template <typename First, typename Last
|
||||||
|
, bool is_empty = result_of::equal_to<First, Last>::value>
|
||||||
|
struct build_deque;
|
||||||
|
|
||||||
|
template <typename First, typename Last>
|
||||||
|
struct build_deque<First, Last, true>
|
||||||
|
{
|
||||||
|
typedef deque<> type;
|
||||||
|
static type
|
||||||
|
call(First const&, Last const&)
|
||||||
|
{
|
||||||
|
return type();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
template <typename T, typename Rest>
|
||||||
|
struct push_front_deque;
|
||||||
|
|
||||||
|
template <typename T, typename ...Rest>
|
||||||
|
struct push_front_deque<T, deque<Rest...>>
|
||||||
|
{
|
||||||
|
typedef deque<T, Rest...> type;
|
||||||
|
|
||||||
|
static type
|
||||||
|
call(T const& first, deque<Rest...> const& rest)
|
||||||
|
{
|
||||||
|
return type(front_extended_deque<deque<Rest...>, T>(rest, first));
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
template <typename First, typename Last>
|
||||||
|
struct build_deque<First, Last, false>
|
||||||
|
{
|
||||||
|
typedef
|
||||||
|
build_deque<typename result_of::next<First>::type, Last>
|
||||||
|
next_build_deque;
|
||||||
|
|
||||||
|
typedef push_front_deque<
|
||||||
|
typename result_of::value_of<First>::type
|
||||||
|
, typename next_build_deque::type>
|
||||||
|
push_front;
|
||||||
|
|
||||||
|
typedef typename push_front::type type;
|
||||||
|
|
||||||
|
static type
|
||||||
|
call(First const& f, Last const& l)
|
||||||
|
{
|
||||||
|
typename result_of::value_of<First>::type v = *f;
|
||||||
|
return push_front::call(
|
||||||
|
v, next_build_deque::call(fusion::next(f), l));
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}}}
|
||||||
|
|
||||||
|
#endif
|
@ -0,0 +1,52 @@
|
|||||||
|
/*=============================================================================
|
||||||
|
Copyright (c) 2005-2013 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(BOOST_FUSION_BUILD_DEQUE_02032013_1921)
|
||||||
|
#define BOOST_FUSION_BUILD_DEQUE_02032013_1921
|
||||||
|
|
||||||
|
#if defined(BOOST_FUSION_HAS_VARIADIC_DEQUE)
|
||||||
|
#error "C++03 only! This file should not have been included"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <boost/fusion/sequence/intrinsic/begin.hpp>
|
||||||
|
#include <boost/fusion/sequence/intrinsic/size.hpp>
|
||||||
|
#include <boost/fusion/container/deque/detail/cpp03/as_deque.hpp>
|
||||||
|
#include <boost/fusion/container/deque/front_extended_deque.hpp>
|
||||||
|
|
||||||
|
namespace boost { namespace fusion
|
||||||
|
{
|
||||||
|
namespace result_of
|
||||||
|
{
|
||||||
|
template <typename Sequence>
|
||||||
|
struct as_deque
|
||||||
|
{
|
||||||
|
typedef typename
|
||||||
|
detail::as_deque<result_of::size<Sequence>::value>
|
||||||
|
gen;
|
||||||
|
typedef typename gen::
|
||||||
|
template apply<typename result_of::begin<Sequence>::type>::type
|
||||||
|
type;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename Sequence>
|
||||||
|
inline typename result_of::as_deque<Sequence>::type
|
||||||
|
as_deque(Sequence& seq)
|
||||||
|
{
|
||||||
|
typedef typename result_of::as_deque<Sequence>::gen gen;
|
||||||
|
return gen::call(fusion::begin(seq));
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename Sequence>
|
||||||
|
inline typename result_of::as_deque<Sequence const>::type
|
||||||
|
as_deque(Sequence const& seq)
|
||||||
|
{
|
||||||
|
typedef typename result_of::as_deque<Sequence const>::gen gen;
|
||||||
|
return gen::call(fusion::begin(seq));
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
|
||||||
|
#endif
|
@ -15,7 +15,7 @@
|
|||||||
#include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
|
#include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
|
||||||
#include <boost/preprocessor/repetition/repeat_from_to.hpp>
|
#include <boost/preprocessor/repetition/repeat_from_to.hpp>
|
||||||
#include <boost/fusion/container/map/map.hpp>
|
#include <boost/fusion/container/map/map.hpp>
|
||||||
#include <boost/fusion/container/map/limits.hpp>
|
#include <boost/fusion/container/map/detail/cpp03/limits.hpp>
|
||||||
#include <boost/fusion/support/pair.hpp>
|
#include <boost/fusion/support/pair.hpp>
|
||||||
#include <boost/fusion/container/generation/pair_tie.hpp>
|
#include <boost/fusion/container/generation/pair_tie.hpp>
|
||||||
#include <boost/type_traits/add_reference.hpp>
|
#include <boost/type_traits/add_reference.hpp>
|
||||||
|
@ -7,7 +7,6 @@
|
|||||||
#if !defined(FUSION_SEQUENCE_CLASS_MAP_10022005_0606)
|
#if !defined(FUSION_SEQUENCE_CLASS_MAP_10022005_0606)
|
||||||
#define FUSION_SEQUENCE_CLASS_MAP_10022005_0606
|
#define FUSION_SEQUENCE_CLASS_MAP_10022005_0606
|
||||||
|
|
||||||
#include <boost/fusion/container/map/limits.hpp>
|
|
||||||
#include <boost/fusion/container/map/map.hpp>
|
#include <boost/fusion/container/map/map.hpp>
|
||||||
#include <boost/fusion/container/map/map_fwd.hpp>
|
#include <boost/fusion/container/map/map_fwd.hpp>
|
||||||
#include <boost/fusion/container/map/convert.hpp>
|
#include <boost/fusion/container/map/convert.hpp>
|
||||||
|
@ -4,44 +4,9 @@
|
|||||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
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)
|
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
==============================================================================*/
|
==============================================================================*/
|
||||||
#if !defined(FUSION_CONVERT_09232005_1340)
|
#if !defined(FUSION_CONVERT_MAIN_09232005_1340)
|
||||||
#define FUSION_CONVERT_09232005_1340
|
#define FUSION_CONVERT_MAIN_09232005_1340
|
||||||
|
|
||||||
#include <boost/fusion/container/map/detail/as_map.hpp>
|
#include <boost/fusion/container/map/detail/cpp03/convert.hpp>
|
||||||
#include <boost/fusion/container/map/detail/convert_impl.hpp>
|
|
||||||
#include <boost/fusion/container/map/map.hpp>
|
|
||||||
#include <boost/fusion/sequence/intrinsic/begin.hpp>
|
|
||||||
#include <boost/fusion/sequence/intrinsic/size.hpp>
|
|
||||||
|
|
||||||
namespace boost { namespace fusion
|
|
||||||
{
|
|
||||||
namespace result_of
|
|
||||||
{
|
|
||||||
template <typename Sequence>
|
|
||||||
struct as_map
|
|
||||||
{
|
|
||||||
typedef typename detail::as_map<result_of::size<Sequence>::value> gen;
|
|
||||||
typedef typename gen::
|
|
||||||
template apply<typename result_of::begin<Sequence>::type>::type
|
|
||||||
type;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
template <typename Sequence>
|
|
||||||
inline typename result_of::as_map<Sequence>::type
|
|
||||||
as_map(Sequence& seq)
|
|
||||||
{
|
|
||||||
typedef typename result_of::as_map<Sequence>::gen gen;
|
|
||||||
return gen::call(fusion::begin(seq));
|
|
||||||
}
|
|
||||||
|
|
||||||
template <typename Sequence>
|
|
||||||
inline typename result_of::as_map<Sequence const>::type
|
|
||||||
as_map(Sequence const& seq)
|
|
||||||
{
|
|
||||||
typedef typename result_of::as_map<Sequence const>::gen gen;
|
|
||||||
return gen::call(fusion::begin(seq));
|
|
||||||
}
|
|
||||||
}}
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
#include <boost/preprocessor/cat.hpp>
|
#include <boost/preprocessor/cat.hpp>
|
||||||
#include <boost/preprocessor/inc.hpp>
|
#include <boost/preprocessor/inc.hpp>
|
||||||
#include <boost/preprocessor/dec.hpp>
|
#include <boost/preprocessor/dec.hpp>
|
||||||
#include <boost/fusion/container/map/map.hpp>
|
#include <boost/fusion/container/map/detail/cpp03/map.hpp>
|
||||||
#include <boost/fusion/iterator/value_of.hpp>
|
#include <boost/fusion/iterator/value_of.hpp>
|
||||||
#include <boost/fusion/iterator/deref.hpp>
|
#include <boost/fusion/iterator/deref.hpp>
|
||||||
#include <boost/fusion/iterator/next.hpp>
|
#include <boost/fusion/iterator/next.hpp>
|
||||||
@ -44,7 +44,7 @@ namespace boost { namespace fusion { namespace detail
|
|||||||
}}}
|
}}}
|
||||||
|
|
||||||
#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
|
#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
|
||||||
#include <boost/fusion/container/map/detail/preprocessed/as_map.hpp>
|
#include <boost/fusion/container/map/detail/cpp03/preprocessed/as_map.hpp>
|
||||||
#else
|
#else
|
||||||
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
||||||
#pragma wave option(preserve: 2, line: 0, output: "preprocessed/as_map" FUSION_MAX_MAP_SIZE_STR ".hpp")
|
#pragma wave option(preserve: 2, line: 0, output: "preprocessed/as_map" FUSION_MAX_MAP_SIZE_STR ".hpp")
|
||||||
@ -77,7 +77,7 @@ namespace boost { namespace fusion { namespace detail
|
|||||||
typedef typename fusion::result_of::value_of<BOOST_PP_CAT(I, n)>::type \
|
typedef typename fusion::result_of::value_of<BOOST_PP_CAT(I, n)>::type \
|
||||||
BOOST_PP_CAT(T, n);
|
BOOST_PP_CAT(T, n);
|
||||||
|
|
||||||
#define BOOST_PP_FILENAME_1 <boost/fusion/container/map/detail/as_map.hpp>
|
#define BOOST_PP_FILENAME_1 <boost/fusion/container/map/detail/cpp03/as_map.hpp>
|
||||||
#define BOOST_PP_ITERATION_LIMITS (1, FUSION_MAX_MAP_SIZE)
|
#define BOOST_PP_ITERATION_LIMITS (1, FUSION_MAX_MAP_SIZE)
|
||||||
#include BOOST_PP_ITERATE()
|
#include BOOST_PP_ITERATE()
|
||||||
|
|
47
include/boost/fusion/container/map/detail/cpp03/convert.hpp
Normal file
47
include/boost/fusion/container/map/detail/cpp03/convert.hpp
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
/*=============================================================================
|
||||||
|
Copyright (c) 2001-2011 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_CONVERT_09232005_1340)
|
||||||
|
#define FUSION_CONVERT_09232005_1340
|
||||||
|
|
||||||
|
#include <boost/fusion/container/map/detail/cpp03/as_map.hpp>
|
||||||
|
#include <boost/fusion/container/map/detail/cpp03/convert_impl.hpp>
|
||||||
|
#include <boost/fusion/container/map/detail/cpp03/map.hpp>
|
||||||
|
#include <boost/fusion/sequence/intrinsic/begin.hpp>
|
||||||
|
#include <boost/fusion/sequence/intrinsic/size.hpp>
|
||||||
|
|
||||||
|
namespace boost { namespace fusion
|
||||||
|
{
|
||||||
|
namespace result_of
|
||||||
|
{
|
||||||
|
template <typename Sequence>
|
||||||
|
struct as_map
|
||||||
|
{
|
||||||
|
typedef typename detail::as_map<result_of::size<Sequence>::value> gen;
|
||||||
|
typedef typename gen::
|
||||||
|
template apply<typename result_of::begin<Sequence>::type>::type
|
||||||
|
type;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename Sequence>
|
||||||
|
inline typename result_of::as_map<Sequence>::type
|
||||||
|
as_map(Sequence& seq)
|
||||||
|
{
|
||||||
|
typedef typename result_of::as_map<Sequence>::gen gen;
|
||||||
|
return gen::call(fusion::begin(seq));
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename Sequence>
|
||||||
|
inline typename result_of::as_map<Sequence const>::type
|
||||||
|
as_map(Sequence const& seq)
|
||||||
|
{
|
||||||
|
typedef typename result_of::as_map<Sequence const>::gen gen;
|
||||||
|
return gen::call(fusion::begin(seq));
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
|
||||||
|
#endif
|
@ -8,8 +8,8 @@
|
|||||||
#if !defined(FUSION_CONVERT_IMPL_09232005_1340)
|
#if !defined(FUSION_CONVERT_IMPL_09232005_1340)
|
||||||
#define FUSION_CONVERT_IMPL_09232005_1340
|
#define FUSION_CONVERT_IMPL_09232005_1340
|
||||||
|
|
||||||
#include <boost/fusion/container/map/detail/as_map.hpp>
|
#include <boost/fusion/container/map/detail/cpp03/as_map.hpp>
|
||||||
#include <boost/fusion/container/map/map.hpp>
|
#include <boost/fusion/container/map/detail/cpp03/map.hpp>
|
||||||
#include <boost/fusion/sequence/intrinsic/begin.hpp>
|
#include <boost/fusion/sequence/intrinsic/begin.hpp>
|
||||||
#include <boost/fusion/sequence/intrinsic/size.hpp>
|
#include <boost/fusion/sequence/intrinsic/size.hpp>
|
||||||
|
|
@ -8,7 +8,7 @@
|
|||||||
#ifndef BOOST_FUSION_CONTAINER_MAP_DETAIL_KEY_OF_IMPL_HPP
|
#ifndef BOOST_FUSION_CONTAINER_MAP_DETAIL_KEY_OF_IMPL_HPP
|
||||||
#define BOOST_FUSION_CONTAINER_MAP_DETAIL_KEY_OF_IMPL_HPP
|
#define BOOST_FUSION_CONTAINER_MAP_DETAIL_KEY_OF_IMPL_HPP
|
||||||
|
|
||||||
#include <boost/fusion/container/map/detail/value_of_impl.hpp>
|
#include <boost/fusion/container/map/detail/cpp03/value_of_impl.hpp>
|
||||||
|
|
||||||
namespace boost { namespace fusion { namespace extension
|
namespace boost { namespace fusion { namespace extension
|
||||||
{
|
{
|
99
include/boost/fusion/container/map/detail/cpp03/map.hpp
Normal file
99
include/boost/fusion/container/map/detail/cpp03/map.hpp
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
/*=============================================================================
|
||||||
|
Copyright (c) 2001-2011 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_MAP_07212005_1106)
|
||||||
|
#define FUSION_MAP_07212005_1106
|
||||||
|
|
||||||
|
#include <boost/fusion/support/pair.hpp>
|
||||||
|
#include <boost/fusion/support/category_of.hpp>
|
||||||
|
#include <boost/fusion/support/detail/access.hpp>
|
||||||
|
#include <boost/fusion/container/map/detail/cpp03/map_fwd.hpp>
|
||||||
|
#include <boost/fusion/container/map/detail/cpp03/at_impl.hpp>
|
||||||
|
#include <boost/fusion/container/map/detail/cpp03/value_at_impl.hpp>
|
||||||
|
#include <boost/fusion/container/map/detail/cpp03/begin_impl.hpp>
|
||||||
|
#include <boost/fusion/container/map/detail/cpp03/end_impl.hpp>
|
||||||
|
#include <boost/fusion/container/map/detail/cpp03/value_of_impl.hpp>
|
||||||
|
#include <boost/fusion/container/map/detail/cpp03/deref_data_impl.hpp>
|
||||||
|
#include <boost/fusion/container/map/detail/cpp03/deref_impl.hpp>
|
||||||
|
#include <boost/fusion/container/map/detail/cpp03/key_of_impl.hpp>
|
||||||
|
#include <boost/fusion/container/map/detail/cpp03/value_of_data_impl.hpp>
|
||||||
|
#include <boost/fusion/container/vector/vector.hpp>
|
||||||
|
#include <boost/mpl/identity.hpp>
|
||||||
|
#include <boost/mpl/bool.hpp>
|
||||||
|
|
||||||
|
#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
|
||||||
|
#include <boost/fusion/container/map/detail/cpp03/preprocessed/map.hpp>
|
||||||
|
#else
|
||||||
|
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
||||||
|
#pragma wave option(preserve: 2, line: 0, output: "detail/preprocessed/map" FUSION_MAX_MAP_SIZE_STR ".hpp")
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*=============================================================================
|
||||||
|
Copyright (c) 2001-2011 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)
|
||||||
|
|
||||||
|
This is an auto-generated file. Do not edit!
|
||||||
|
==============================================================================*/
|
||||||
|
|
||||||
|
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
||||||
|
#pragma wave option(preserve: 1)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
namespace boost { namespace fusion
|
||||||
|
{
|
||||||
|
struct void_;
|
||||||
|
struct fusion_sequence_tag;
|
||||||
|
|
||||||
|
template <BOOST_PP_ENUM_PARAMS(FUSION_MAX_MAP_SIZE, typename T)>
|
||||||
|
struct map : sequence_base<map<BOOST_PP_ENUM_PARAMS(FUSION_MAX_MAP_SIZE, T)> >
|
||||||
|
{
|
||||||
|
struct category : random_access_traversal_tag, associative_tag {};
|
||||||
|
|
||||||
|
typedef map_tag fusion_tag;
|
||||||
|
typedef fusion_sequence_tag tag; // this gets picked up by MPL
|
||||||
|
typedef mpl::false_ is_view;
|
||||||
|
|
||||||
|
typedef vector<
|
||||||
|
BOOST_PP_ENUM_PARAMS(FUSION_MAX_MAP_SIZE, T)>
|
||||||
|
storage_type;
|
||||||
|
|
||||||
|
typedef typename storage_type::size size;
|
||||||
|
|
||||||
|
map()
|
||||||
|
: data() {}
|
||||||
|
|
||||||
|
template <typename Sequence>
|
||||||
|
map(Sequence const& rhs)
|
||||||
|
: data(rhs) {}
|
||||||
|
|
||||||
|
#include <boost/fusion/container/map/detail/cpp03/map_forward_ctor.hpp>
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
map&
|
||||||
|
operator=(T const& rhs)
|
||||||
|
{
|
||||||
|
data = rhs;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
storage_type& get_data() { return data; }
|
||||||
|
storage_type const& get_data() const { return data; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
|
storage_type data;
|
||||||
|
};
|
||||||
|
}}
|
||||||
|
|
||||||
|
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
||||||
|
#pragma wave option(output: null)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
|
||||||
|
|
||||||
|
#endif
|
@ -13,7 +13,7 @@
|
|||||||
#include <boost/preprocessor/repetition/enum_binary_params.hpp>
|
#include <boost/preprocessor/repetition/enum_binary_params.hpp>
|
||||||
|
|
||||||
#define BOOST_PP_FILENAME_1 \
|
#define BOOST_PP_FILENAME_1 \
|
||||||
<boost/fusion/container/map/detail/map_forward_ctor.hpp>
|
<boost/fusion/container/map/detail/cpp03/map_forward_ctor.hpp>
|
||||||
#define BOOST_PP_ITERATION_LIMITS (1, FUSION_MAX_MAP_SIZE)
|
#define BOOST_PP_ITERATION_LIMITS (1, FUSION_MAX_MAP_SIZE)
|
||||||
#include BOOST_PP_ITERATE()
|
#include BOOST_PP_ITERATE()
|
||||||
|
|
52
include/boost/fusion/container/map/detail/cpp03/map_fwd.hpp
Normal file
52
include/boost/fusion/container/map/detail/cpp03/map_fwd.hpp
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
/*=============================================================================
|
||||||
|
Copyright (c) 2001-2011 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_MAP_FORWARD_07212005_1105)
|
||||||
|
#define FUSION_MAP_FORWARD_07212005_1105
|
||||||
|
|
||||||
|
#include <boost/fusion/container/map/detail/cpp03/limits.hpp>
|
||||||
|
#include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
|
||||||
|
|
||||||
|
#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
|
||||||
|
#include <boost/fusion/container/map/detail/cpp03/preprocessed/map_fwd.hpp>
|
||||||
|
#else
|
||||||
|
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
||||||
|
#pragma wave option(preserve: 2, line: 0, output: "detail/preprocessed/map" FUSION_MAX_MAP_SIZE_STR "_fwd.hpp")
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*=============================================================================
|
||||||
|
Copyright (c) 2001-2011 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)
|
||||||
|
|
||||||
|
This is an auto-generated file. Do not edit!
|
||||||
|
==============================================================================*/
|
||||||
|
|
||||||
|
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
||||||
|
#pragma wave option(preserve: 1)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
namespace boost { namespace fusion
|
||||||
|
{
|
||||||
|
struct void_;
|
||||||
|
struct map_tag;
|
||||||
|
struct map_iterator_tag;
|
||||||
|
|
||||||
|
template <
|
||||||
|
BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(
|
||||||
|
FUSION_MAX_MAP_SIZE, typename T, void_)
|
||||||
|
>
|
||||||
|
struct map;
|
||||||
|
}}
|
||||||
|
|
||||||
|
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
||||||
|
#pragma wave option(output: null)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
|
||||||
|
|
||||||
|
#endif
|
@ -8,15 +8,15 @@
|
|||||||
==============================================================================*/
|
==============================================================================*/
|
||||||
|
|
||||||
#if FUSION_MAX_MAP_SIZE <= 10
|
#if FUSION_MAX_MAP_SIZE <= 10
|
||||||
#include <boost/fusion/container/map/detail/preprocessed/as_map10.hpp>
|
#include <boost/fusion/container/map/detail/cpp03/preprocessed/as_map10.hpp>
|
||||||
#elif FUSION_MAX_MAP_SIZE <= 20
|
#elif FUSION_MAX_MAP_SIZE <= 20
|
||||||
#include <boost/fusion/container/map/detail/preprocessed/as_map20.hpp>
|
#include <boost/fusion/container/map/detail/cpp03/preprocessed/as_map20.hpp>
|
||||||
#elif FUSION_MAX_MAP_SIZE <= 30
|
#elif FUSION_MAX_MAP_SIZE <= 30
|
||||||
#include <boost/fusion/container/map/detail/preprocessed/as_map30.hpp>
|
#include <boost/fusion/container/map/detail/cpp03/preprocessed/as_map30.hpp>
|
||||||
#elif FUSION_MAX_MAP_SIZE <= 40
|
#elif FUSION_MAX_MAP_SIZE <= 40
|
||||||
#include <boost/fusion/container/map/detail/preprocessed/as_map40.hpp>
|
#include <boost/fusion/container/map/detail/cpp03/preprocessed/as_map40.hpp>
|
||||||
#elif FUSION_MAX_MAP_SIZE <= 50
|
#elif FUSION_MAX_MAP_SIZE <= 50
|
||||||
#include <boost/fusion/container/map/detail/preprocessed/as_map50.hpp>
|
#include <boost/fusion/container/map/detail/cpp03/preprocessed/as_map50.hpp>
|
||||||
#else
|
#else
|
||||||
#error "FUSION_MAX_MAP_SIZE out of bounds for preprocessed headers"
|
#error "FUSION_MAX_MAP_SIZE out of bounds for preprocessed headers"
|
||||||
#endif
|
#endif
|
@ -8,15 +8,15 @@
|
|||||||
==============================================================================*/
|
==============================================================================*/
|
||||||
|
|
||||||
#if FUSION_MAX_MAP_SIZE <= 10
|
#if FUSION_MAX_MAP_SIZE <= 10
|
||||||
#include <boost/fusion/container/map/detail/preprocessed/map10.hpp>
|
#include <boost/fusion/container/map/detail/cpp03/preprocessed/map10.hpp>
|
||||||
#elif FUSION_MAX_MAP_SIZE <= 20
|
#elif FUSION_MAX_MAP_SIZE <= 20
|
||||||
#include <boost/fusion/container/map/detail/preprocessed/map20.hpp>
|
#include <boost/fusion/container/map/detail/cpp03/preprocessed/map20.hpp>
|
||||||
#elif FUSION_MAX_MAP_SIZE <= 30
|
#elif FUSION_MAX_MAP_SIZE <= 30
|
||||||
#include <boost/fusion/container/map/detail/preprocessed/map30.hpp>
|
#include <boost/fusion/container/map/detail/cpp03/preprocessed/map30.hpp>
|
||||||
#elif FUSION_MAX_MAP_SIZE <= 40
|
#elif FUSION_MAX_MAP_SIZE <= 40
|
||||||
#include <boost/fusion/container/map/detail/preprocessed/map40.hpp>
|
#include <boost/fusion/container/map/detail/cpp03/preprocessed/map40.hpp>
|
||||||
#elif FUSION_MAX_MAP_SIZE <= 50
|
#elif FUSION_MAX_MAP_SIZE <= 50
|
||||||
#include <boost/fusion/container/map/detail/preprocessed/map50.hpp>
|
#include <boost/fusion/container/map/detail/cpp03/preprocessed/map50.hpp>
|
||||||
#else
|
#else
|
||||||
#error "FUSION_MAX_MAP_SIZE out of bounds for preprocessed headers"
|
#error "FUSION_MAX_MAP_SIZE out of bounds for preprocessed headers"
|
||||||
#endif
|
#endif
|
@ -8,15 +8,15 @@
|
|||||||
==============================================================================*/
|
==============================================================================*/
|
||||||
|
|
||||||
#if FUSION_MAX_MAP_SIZE <= 10
|
#if FUSION_MAX_MAP_SIZE <= 10
|
||||||
#include <boost/fusion/container/map/detail/preprocessed/map10_fwd.hpp>
|
#include <boost/fusion/container/map/detail/cpp03/preprocessed/map10_fwd.hpp>
|
||||||
#elif FUSION_MAX_MAP_SIZE <= 20
|
#elif FUSION_MAX_MAP_SIZE <= 20
|
||||||
#include <boost/fusion/container/map/detail/preprocessed/map20_fwd.hpp>
|
#include <boost/fusion/container/map/detail/cpp03/preprocessed/map20_fwd.hpp>
|
||||||
#elif FUSION_MAX_MAP_SIZE <= 30
|
#elif FUSION_MAX_MAP_SIZE <= 30
|
||||||
#include <boost/fusion/container/map/detail/preprocessed/map30_fwd.hpp>
|
#include <boost/fusion/container/map/detail/cpp03/preprocessed/map30_fwd.hpp>
|
||||||
#elif FUSION_MAX_MAP_SIZE <= 40
|
#elif FUSION_MAX_MAP_SIZE <= 40
|
||||||
#include <boost/fusion/container/map/detail/preprocessed/map40_fwd.hpp>
|
#include <boost/fusion/container/map/detail/cpp03/preprocessed/map40_fwd.hpp>
|
||||||
#elif FUSION_MAX_MAP_SIZE <= 50
|
#elif FUSION_MAX_MAP_SIZE <= 50
|
||||||
#include <boost/fusion/container/map/detail/preprocessed/map50_fwd.hpp>
|
#include <boost/fusion/container/map/detail/cpp03/preprocessed/map50_fwd.hpp>
|
||||||
#else
|
#else
|
||||||
#error "FUSION_MAX_MAP_SIZE out of bounds for preprocessed headers"
|
#error "FUSION_MAX_MAP_SIZE out of bounds for preprocessed headers"
|
||||||
#endif
|
#endif
|
@ -8,7 +8,7 @@
|
|||||||
#ifndef BOOST_FUSION_CONTAINER_MAP_DETAIL_VALUE_OF_DATA_IMPL_HPP
|
#ifndef BOOST_FUSION_CONTAINER_MAP_DETAIL_VALUE_OF_DATA_IMPL_HPP
|
||||||
#define BOOST_FUSION_CONTAINER_MAP_DETAIL_VALUE_OF_DATA_IMPL_HPP
|
#define BOOST_FUSION_CONTAINER_MAP_DETAIL_VALUE_OF_DATA_IMPL_HPP
|
||||||
|
|
||||||
#include <boost/fusion/container/map/detail/value_of_impl.hpp>
|
#include <boost/fusion/container/map/detail/cpp03/value_of_impl.hpp>
|
||||||
|
|
||||||
namespace boost { namespace fusion { namespace extension
|
namespace boost { namespace fusion { namespace extension
|
||||||
{
|
{
|
@ -4,96 +4,9 @@
|
|||||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
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)
|
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
==============================================================================*/
|
==============================================================================*/
|
||||||
#if !defined(FUSION_MAP_07212005_1106)
|
#if !defined(FUSION_MAP_MAIN_07212005_1106)
|
||||||
#define FUSION_MAP_07212005_1106
|
#define FUSION_MAP_MAIN_07212005_1106
|
||||||
|
|
||||||
#include <boost/fusion/support/pair.hpp>
|
#include <boost/fusion/container/map/detail/cpp03/map.hpp>
|
||||||
#include <boost/fusion/support/category_of.hpp>
|
|
||||||
#include <boost/fusion/support/detail/access.hpp>
|
|
||||||
#include <boost/fusion/container/map/map_fwd.hpp>
|
|
||||||
#include <boost/fusion/container/map/detail/at_impl.hpp>
|
|
||||||
#include <boost/fusion/container/map/detail/value_at_impl.hpp>
|
|
||||||
#include <boost/fusion/container/map/detail/begin_impl.hpp>
|
|
||||||
#include <boost/fusion/container/map/detail/end_impl.hpp>
|
|
||||||
#include <boost/fusion/container/map/detail/value_of_impl.hpp>
|
|
||||||
#include <boost/fusion/container/map/detail/deref_data_impl.hpp>
|
|
||||||
#include <boost/fusion/container/map/detail/deref_impl.hpp>
|
|
||||||
#include <boost/fusion/container/map/detail/key_of_impl.hpp>
|
|
||||||
#include <boost/fusion/container/map/detail/value_of_data_impl.hpp>
|
|
||||||
#include <boost/fusion/container/vector/vector.hpp>
|
|
||||||
#include <boost/mpl/identity.hpp>
|
|
||||||
#include <boost/mpl/bool.hpp>
|
|
||||||
|
|
||||||
#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
|
|
||||||
#include <boost/fusion/container/map/detail/preprocessed/map.hpp>
|
|
||||||
#else
|
|
||||||
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
|
||||||
#pragma wave option(preserve: 2, line: 0, output: "detail/preprocessed/map" FUSION_MAX_MAP_SIZE_STR ".hpp")
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*=============================================================================
|
|
||||||
Copyright (c) 2001-2011 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)
|
|
||||||
|
|
||||||
This is an auto-generated file. Do not edit!
|
|
||||||
==============================================================================*/
|
|
||||||
|
|
||||||
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
|
||||||
#pragma wave option(preserve: 1)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
namespace boost { namespace fusion
|
|
||||||
{
|
|
||||||
struct void_;
|
|
||||||
struct fusion_sequence_tag;
|
|
||||||
|
|
||||||
template <BOOST_PP_ENUM_PARAMS(FUSION_MAX_MAP_SIZE, typename T)>
|
|
||||||
struct map : sequence_base<map<BOOST_PP_ENUM_PARAMS(FUSION_MAX_MAP_SIZE, T)> >
|
|
||||||
{
|
|
||||||
struct category : random_access_traversal_tag, associative_tag {};
|
|
||||||
|
|
||||||
typedef map_tag fusion_tag;
|
|
||||||
typedef fusion_sequence_tag tag; // this gets picked up by MPL
|
|
||||||
typedef mpl::false_ is_view;
|
|
||||||
|
|
||||||
typedef vector<
|
|
||||||
BOOST_PP_ENUM_PARAMS(FUSION_MAX_MAP_SIZE, T)>
|
|
||||||
storage_type;
|
|
||||||
|
|
||||||
typedef typename storage_type::size size;
|
|
||||||
|
|
||||||
map()
|
|
||||||
: data() {}
|
|
||||||
|
|
||||||
template <typename Sequence>
|
|
||||||
map(Sequence const& rhs)
|
|
||||||
: data(rhs) {}
|
|
||||||
|
|
||||||
#include <boost/fusion/container/map/detail/map_forward_ctor.hpp>
|
|
||||||
|
|
||||||
template <typename T>
|
|
||||||
map&
|
|
||||||
operator=(T const& rhs)
|
|
||||||
{
|
|
||||||
data = rhs;
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
storage_type& get_data() { return data; }
|
|
||||||
storage_type const& get_data() const { return data; }
|
|
||||||
|
|
||||||
private:
|
|
||||||
|
|
||||||
storage_type data;
|
|
||||||
};
|
|
||||||
}}
|
|
||||||
|
|
||||||
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
|
||||||
#pragma wave option(output: null)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -4,49 +4,9 @@
|
|||||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
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)
|
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
==============================================================================*/
|
==============================================================================*/
|
||||||
#if !defined(FUSION_MAP_FORWARD_07212005_1105)
|
#if !defined(FUSION_MAP_FORWARD_MAIN_07212005_1105)
|
||||||
#define FUSION_MAP_FORWARD_07212005_1105
|
#define FUSION_MAP_FORWARD_MAIN_07212005_1105
|
||||||
|
|
||||||
#include <boost/fusion/container/map/limits.hpp>
|
#include <boost/fusion/container/map/detail/cpp03/map_fwd.hpp>
|
||||||
#include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
|
|
||||||
|
|
||||||
#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
|
|
||||||
#include <boost/fusion/container/map/detail/preprocessed/map_fwd.hpp>
|
|
||||||
#else
|
|
||||||
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
|
||||||
#pragma wave option(preserve: 2, line: 0, output: "detail/preprocessed/map" FUSION_MAX_MAP_SIZE_STR "_fwd.hpp")
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*=============================================================================
|
|
||||||
Copyright (c) 2001-2011 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)
|
|
||||||
|
|
||||||
This is an auto-generated file. Do not edit!
|
|
||||||
==============================================================================*/
|
|
||||||
|
|
||||||
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
|
||||||
#pragma wave option(preserve: 1)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
namespace boost { namespace fusion
|
|
||||||
{
|
|
||||||
struct void_;
|
|
||||||
struct map_tag;
|
|
||||||
struct map_iterator_tag;
|
|
||||||
|
|
||||||
template <
|
|
||||||
BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(
|
|
||||||
FUSION_MAX_MAP_SIZE, typename T, void_)
|
|
||||||
>
|
|
||||||
struct map;
|
|
||||||
}}
|
|
||||||
|
|
||||||
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
|
||||||
#pragma wave option(output: null)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Reference in New Issue
Block a user