mirror of
https://github.com/boostorg/fusion.git
synced 2025-07-23 09:07:26 +02:00
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)
|
||||
#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/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/repeat_from_to.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/container/generation/pair_tie.hpp>
|
||||
#include <boost/type_traits/add_reference.hpp>
|
||||
|
@ -7,7 +7,6 @@
|
||||
#if !defined(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_fwd.hpp>
|
||||
#include <boost/fusion/container/map/convert.hpp>
|
||||
|
@ -4,44 +4,9 @@
|
||||
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
|
||||
#if !defined(FUSION_CONVERT_MAIN_09232005_1340)
|
||||
#define FUSION_CONVERT_MAIN_09232005_1340
|
||||
|
||||
#include <boost/fusion/container/map/detail/as_map.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));
|
||||
}
|
||||
}}
|
||||
#include <boost/fusion/container/map/detail/cpp03/convert.hpp>
|
||||
|
||||
#endif
|
||||
|
@ -15,7 +15,7 @@
|
||||
#include <boost/preprocessor/cat.hpp>
|
||||
#include <boost/preprocessor/inc.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/deref.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)
|
||||
#include <boost/fusion/container/map/detail/preprocessed/as_map.hpp>
|
||||
#include <boost/fusion/container/map/detail/cpp03/preprocessed/as_map.hpp>
|
||||
#else
|
||||
#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")
|
||||
@ -77,7 +77,7 @@ namespace boost { namespace fusion { namespace detail
|
||||
typedef typename fusion::result_of::value_of<BOOST_PP_CAT(I, n)>::type \
|
||||
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)
|
||||
#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)
|
||||
#define FUSION_CONVERT_IMPL_09232005_1340
|
||||
|
||||
#include <boost/fusion/container/map/detail/as_map.hpp>
|
||||
#include <boost/fusion/container/map/map.hpp>
|
||||
#include <boost/fusion/container/map/detail/cpp03/as_map.hpp>
|
||||
#include <boost/fusion/container/map/detail/cpp03/map.hpp>
|
||||
#include <boost/fusion/sequence/intrinsic/begin.hpp>
|
||||
#include <boost/fusion/sequence/intrinsic/size.hpp>
|
||||
|
@ -8,7 +8,7 @@
|
||||
#ifndef 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
|
||||
{
|
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>
|
||||
|
||||
#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)
|
||||
#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
|
||||
#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
|
||||
#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
|
||||
#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
|
||||
#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
|
||||
#include <boost/fusion/container/map/detail/preprocessed/as_map50.hpp>
|
||||
#include <boost/fusion/container/map/detail/cpp03/preprocessed/as_map50.hpp>
|
||||
#else
|
||||
#error "FUSION_MAX_MAP_SIZE out of bounds for preprocessed headers"
|
||||
#endif
|
@ -8,15 +8,15 @@
|
||||
==============================================================================*/
|
||||
|
||||
#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
|
||||
#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
|
||||
#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
|
||||
#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
|
||||
#include <boost/fusion/container/map/detail/preprocessed/map50.hpp>
|
||||
#include <boost/fusion/container/map/detail/cpp03/preprocessed/map50.hpp>
|
||||
#else
|
||||
#error "FUSION_MAX_MAP_SIZE out of bounds for preprocessed headers"
|
||||
#endif
|
@ -8,15 +8,15 @@
|
||||
==============================================================================*/
|
||||
|
||||
#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
|
||||
#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
|
||||
#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
|
||||
#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
|
||||
#include <boost/fusion/container/map/detail/preprocessed/map50_fwd.hpp>
|
||||
#include <boost/fusion/container/map/detail/cpp03/preprocessed/map50_fwd.hpp>
|
||||
#else
|
||||
#error "FUSION_MAX_MAP_SIZE out of bounds for preprocessed headers"
|
||||
#endif
|
@ -8,7 +8,7 @@
|
||||
#ifndef 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
|
||||
{
|
@ -4,96 +4,9 @@
|
||||
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
|
||||
#if !defined(FUSION_MAP_MAIN_07212005_1106)
|
||||
#define FUSION_MAP_MAIN_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/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
|
||||
#include <boost/fusion/container/map/detail/cpp03/map.hpp>
|
||||
|
||||
#endif
|
||||
|
@ -4,49 +4,9 @@
|
||||
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
|
||||
#if !defined(FUSION_MAP_FORWARD_MAIN_07212005_1105)
|
||||
#define FUSION_MAP_FORWARD_MAIN_07212005_1105
|
||||
|
||||
#include <boost/fusion/container/map/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/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
|
||||
#include <boost/fusion/container/map/detail/cpp03/map_fwd.hpp>
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user