mirror of
https://github.com/boostorg/fusion.git
synced 2025-07-21 16:22:45 +02:00
Prepare to merge
This commit is contained in:
@ -0,0 +1,115 @@
|
|||||||
|
/*=============================================================================
|
||||||
|
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)
|
||||||
|
==============================================================================*/
|
||||||
|
#ifndef BOOST_PP_IS_ITERATING
|
||||||
|
#if !defined(FUSION_MAKE_LIST_07192005_1239)
|
||||||
|
#define FUSION_MAKE_LIST_07192005_1239
|
||||||
|
|
||||||
|
#include <boost/preprocessor/iterate.hpp>
|
||||||
|
#include <boost/preprocessor/repetition/enum_params.hpp>
|
||||||
|
#include <boost/preprocessor/repetition/enum_binary_params.hpp>
|
||||||
|
#include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
|
||||||
|
#include <boost/preprocessor/repetition/repeat_from_to.hpp>
|
||||||
|
#include <boost/fusion/container/list/list.hpp>
|
||||||
|
#include <boost/fusion/support/detail/as_fusion_element.hpp>
|
||||||
|
|
||||||
|
#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
|
||||||
|
#include <boost/fusion/container/generation/detail/preprocessed/make_list.hpp>
|
||||||
|
#else
|
||||||
|
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
||||||
|
#pragma wave option(preserve: 2, line: 0, output: "detail/preprocessed/make_list" FUSION_MAX_LIST_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_;
|
||||||
|
|
||||||
|
namespace result_of
|
||||||
|
{
|
||||||
|
template <
|
||||||
|
BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(
|
||||||
|
FUSION_MAX_LIST_SIZE, typename T, void_)
|
||||||
|
, typename Extra = void_
|
||||||
|
>
|
||||||
|
struct make_list;
|
||||||
|
|
||||||
|
template <>
|
||||||
|
struct make_list<>
|
||||||
|
{
|
||||||
|
typedef list<> type;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
||||||
|
inline list<>
|
||||||
|
make_list()
|
||||||
|
{
|
||||||
|
return list<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
#define BOOST_FUSION_AS_FUSION_ELEMENT(z, n, data) \
|
||||||
|
typename detail::as_fusion_element<BOOST_PP_CAT(T, n)>::type
|
||||||
|
|
||||||
|
#define BOOST_PP_FILENAME_1 <boost/fusion/container/generation/make_list.hpp>
|
||||||
|
#define BOOST_PP_ITERATION_LIMITS (1, FUSION_MAX_LIST_SIZE)
|
||||||
|
#include BOOST_PP_ITERATE()
|
||||||
|
|
||||||
|
#undef BOOST_FUSION_AS_FUSION_ELEMENT
|
||||||
|
|
||||||
|
}}
|
||||||
|
|
||||||
|
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
||||||
|
#pragma wave option(output: null)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
|
||||||
|
|
||||||
|
#endif
|
||||||
|
#else // defined(BOOST_PP_IS_ITERATING)
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Preprocessor vertical repetition code
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#define N BOOST_PP_ITERATION()
|
||||||
|
|
||||||
|
namespace result_of
|
||||||
|
{
|
||||||
|
template <BOOST_PP_ENUM_PARAMS(N, typename T)>
|
||||||
|
#define TEXT(z, n, text) , text
|
||||||
|
struct make_list< BOOST_PP_ENUM_PARAMS(N, T) BOOST_PP_REPEAT_FROM_TO(BOOST_PP_DEC(N), FUSION_MAX_LIST_SIZE, TEXT, void_) >
|
||||||
|
#undef TEXT
|
||||||
|
{
|
||||||
|
typedef list<BOOST_PP_ENUM(N, BOOST_FUSION_AS_FUSION_ELEMENT, _)> type;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
template <BOOST_PP_ENUM_PARAMS(N, typename T)>
|
||||||
|
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
||||||
|
inline list<BOOST_PP_ENUM(N, BOOST_FUSION_AS_FUSION_ELEMENT, _)>
|
||||||
|
make_list(BOOST_PP_ENUM_BINARY_PARAMS(N, T, const& arg))
|
||||||
|
{
|
||||||
|
return list<BOOST_PP_ENUM(N, BOOST_FUSION_AS_FUSION_ELEMENT, _)>(
|
||||||
|
BOOST_PP_ENUM_PARAMS(N, arg));
|
||||||
|
}
|
||||||
|
|
||||||
|
#undef N
|
||||||
|
#endif // defined(BOOST_PP_IS_ITERATING)
|
||||||
|
|
134
include/boost/fusion/container/generation/detail/pp_make_set.hpp
Normal file
134
include/boost/fusion/container/generation/detail/pp_make_set.hpp
Normal file
@ -0,0 +1,134 @@
|
|||||||
|
/*=============================================================================
|
||||||
|
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)
|
||||||
|
==============================================================================*/
|
||||||
|
#ifndef BOOST_PP_IS_ITERATING
|
||||||
|
#if !defined(FUSION_MAKE_SET_09162005_1125)
|
||||||
|
#define FUSION_MAKE_SET_09162005_1125
|
||||||
|
|
||||||
|
#include <boost/preprocessor/iterate.hpp>
|
||||||
|
#include <boost/preprocessor/repetition/enum_params.hpp>
|
||||||
|
#include <boost/preprocessor/repetition/enum_binary_params.hpp>
|
||||||
|
#include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
|
||||||
|
#include <boost/preprocessor/repetition/repeat_from_to.hpp>
|
||||||
|
#include <boost/fusion/support/config.hpp>
|
||||||
|
#include <boost/fusion/container/set/set.hpp>
|
||||||
|
#include <boost/fusion/support/detail/as_fusion_element.hpp>
|
||||||
|
#include <boost/fusion/support/pair.hpp>
|
||||||
|
|
||||||
|
#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
|
||||||
|
#include <boost/fusion/container/generation/detail/preprocessed/make_set.hpp>
|
||||||
|
#else
|
||||||
|
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
||||||
|
#pragma wave option(preserve: 2, line: 0, output: "detail/preprocessed/make_set" FUSION_MAX_SET_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)
|
||||||
|
#define FUSION_HASH #
|
||||||
|
#endif
|
||||||
|
|
||||||
|
namespace boost { namespace fusion
|
||||||
|
{
|
||||||
|
struct void_;
|
||||||
|
|
||||||
|
namespace result_of
|
||||||
|
{
|
||||||
|
template <
|
||||||
|
BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(
|
||||||
|
FUSION_MAX_VECTOR_SIZE, typename T, void_)
|
||||||
|
, typename Extra = void_
|
||||||
|
>
|
||||||
|
struct make_set;
|
||||||
|
|
||||||
|
template <>
|
||||||
|
struct make_set<>
|
||||||
|
{
|
||||||
|
typedef set<> type;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
// XXX:
|
||||||
|
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
||||||
|
FUSION_HASH if defined(BOOST_CLANG)
|
||||||
|
BOOST_CXX14_CONSTEXPR
|
||||||
|
FUSION_HASH else
|
||||||
|
BOOST_CONSTEXPR
|
||||||
|
FUSION_HASH endif
|
||||||
|
#else
|
||||||
|
#if defined(BOOST_CLANG)
|
||||||
|
BOOST_CXX14_CONSTEXPR
|
||||||
|
#else
|
||||||
|
BOOST_CONSTEXPR
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
BOOST_FUSION_GPU_ENABLED
|
||||||
|
inline set<>
|
||||||
|
make_set()
|
||||||
|
{
|
||||||
|
return set<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
#define BOOST_FUSION_AS_FUSION_ELEMENT(z, n, data) \
|
||||||
|
typename detail::as_fusion_element<BOOST_PP_CAT(T, n)>::type
|
||||||
|
|
||||||
|
#define BOOST_PP_FILENAME_1 <boost/fusion/container/generation/make_set.hpp>
|
||||||
|
#define BOOST_PP_ITERATION_LIMITS (1, FUSION_MAX_VECTOR_SIZE)
|
||||||
|
#include BOOST_PP_ITERATE()
|
||||||
|
|
||||||
|
#undef BOOST_FUSION_ELEMENT
|
||||||
|
#undef BOOST_FUSION_AS_ELEMENT
|
||||||
|
|
||||||
|
}}
|
||||||
|
|
||||||
|
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
||||||
|
#undef FUSION_HASH
|
||||||
|
#pragma wave option(output: null)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
|
||||||
|
|
||||||
|
#endif
|
||||||
|
#else // defined(BOOST_PP_IS_ITERATING)
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Preprocessor vertical repetition code
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#define N BOOST_PP_ITERATION()
|
||||||
|
|
||||||
|
namespace result_of
|
||||||
|
{
|
||||||
|
template <BOOST_PP_ENUM_PARAMS(N, typename T)>
|
||||||
|
#define TEXT(z, n, text) , text
|
||||||
|
struct make_set< BOOST_PP_ENUM_PARAMS(N, T) BOOST_PP_REPEAT_FROM_TO(BOOST_PP_DEC(N), FUSION_MAX_SET_SIZE, TEXT, void_) >
|
||||||
|
#undef TEXT
|
||||||
|
{
|
||||||
|
typedef set<BOOST_PP_ENUM(N, BOOST_FUSION_AS_FUSION_ELEMENT, _)> type;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
template <BOOST_PP_ENUM_PARAMS(N, typename T)>
|
||||||
|
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
||||||
|
inline set<BOOST_PP_ENUM(N, BOOST_FUSION_AS_FUSION_ELEMENT, _)>
|
||||||
|
make_set(BOOST_PP_ENUM_BINARY_PARAMS(N, T, const& arg))
|
||||||
|
{
|
||||||
|
return set<BOOST_PP_ENUM(N, BOOST_FUSION_AS_FUSION_ELEMENT, _)>(
|
||||||
|
BOOST_PP_ENUM_PARAMS(N, arg));
|
||||||
|
}
|
||||||
|
|
||||||
|
#undef N
|
||||||
|
#endif // defined(BOOST_PP_IS_ITERATING)
|
||||||
|
|
@ -0,0 +1,115 @@
|
|||||||
|
/*=============================================================================
|
||||||
|
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)
|
||||||
|
==============================================================================*/
|
||||||
|
#ifndef BOOST_PP_IS_ITERATING
|
||||||
|
#if !defined(FUSION_MAKE_VECTOR_07162005_0243)
|
||||||
|
#define FUSION_MAKE_VECTOR_07162005_0243
|
||||||
|
|
||||||
|
#include <boost/preprocessor/iterate.hpp>
|
||||||
|
#include <boost/preprocessor/repetition/enum_params.hpp>
|
||||||
|
#include <boost/preprocessor/repetition/enum_binary_params.hpp>
|
||||||
|
#include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
|
||||||
|
#include <boost/preprocessor/repetition/repeat_from_to.hpp>
|
||||||
|
#include <boost/fusion/container/vector/vector.hpp>
|
||||||
|
#include <boost/fusion/support/detail/as_fusion_element.hpp>
|
||||||
|
|
||||||
|
#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
|
||||||
|
#include <boost/fusion/container/generation/detail/preprocessed/make_vector.hpp>
|
||||||
|
#else
|
||||||
|
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
||||||
|
#pragma wave option(preserve: 2, line: 0, output: "detail/preprocessed/make_vector" FUSION_MAX_VECTOR_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_;
|
||||||
|
|
||||||
|
namespace result_of
|
||||||
|
{
|
||||||
|
template <
|
||||||
|
BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(
|
||||||
|
FUSION_MAX_VECTOR_SIZE, typename T, void_)
|
||||||
|
, typename Extra = void_
|
||||||
|
>
|
||||||
|
struct make_vector;
|
||||||
|
|
||||||
|
template <>
|
||||||
|
struct make_vector<>
|
||||||
|
{
|
||||||
|
typedef vector0<> type;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
||||||
|
inline vector0<>
|
||||||
|
make_vector()
|
||||||
|
{
|
||||||
|
return vector0<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
#define BOOST_FUSION_AS_FUSION_ELEMENT(z, n, data) \
|
||||||
|
typename detail::as_fusion_element<BOOST_PP_CAT(T, n)>::type
|
||||||
|
|
||||||
|
#define BOOST_PP_FILENAME_1 <boost/fusion/container/generation/make_vector.hpp>
|
||||||
|
#define BOOST_PP_ITERATION_LIMITS (1, FUSION_MAX_VECTOR_SIZE)
|
||||||
|
#include BOOST_PP_ITERATE()
|
||||||
|
|
||||||
|
#undef BOOST_FUSION_AS_FUSION_ELEMENT
|
||||||
|
|
||||||
|
}}
|
||||||
|
|
||||||
|
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
||||||
|
#pragma wave option(output: null)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
|
||||||
|
|
||||||
|
#endif
|
||||||
|
#else // defined(BOOST_PP_IS_ITERATING)
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Preprocessor vertical repetition code
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#define N BOOST_PP_ITERATION()
|
||||||
|
|
||||||
|
namespace result_of
|
||||||
|
{
|
||||||
|
template <BOOST_PP_ENUM_PARAMS(N, typename T)>
|
||||||
|
#define TEXT(z, n, text) , text
|
||||||
|
struct make_vector< BOOST_PP_ENUM_PARAMS(N, T) BOOST_PP_REPEAT_FROM_TO(BOOST_PP_DEC(N), FUSION_MAX_VECTOR_SIZE, TEXT, void_) >
|
||||||
|
#undef TEXT
|
||||||
|
{
|
||||||
|
typedef BOOST_PP_CAT(vector, N)<BOOST_PP_ENUM(N, BOOST_FUSION_AS_FUSION_ELEMENT, _)> type;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
template <BOOST_PP_ENUM_PARAMS(N, typename T)>
|
||||||
|
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
||||||
|
inline BOOST_PP_CAT(vector, N)<BOOST_PP_ENUM(N, BOOST_FUSION_AS_FUSION_ELEMENT, _)>
|
||||||
|
make_vector(BOOST_PP_ENUM_BINARY_PARAMS(N, T, const& arg))
|
||||||
|
{
|
||||||
|
return BOOST_PP_CAT(vector, N)<BOOST_PP_ENUM(N, BOOST_FUSION_AS_FUSION_ELEMENT, _)>(
|
||||||
|
BOOST_PP_ENUM_PARAMS(N, arg));
|
||||||
|
}
|
||||||
|
|
||||||
|
#undef N
|
||||||
|
#endif // defined(BOOST_PP_IS_ITERATING)
|
||||||
|
|
@ -0,0 +1,100 @@
|
|||||||
|
/*=============================================================================
|
||||||
|
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)
|
||||||
|
==============================================================================*/
|
||||||
|
#ifndef BOOST_PP_IS_ITERATING
|
||||||
|
#if !defined(FUSION_VECTOR_TIE_07192005_1242)
|
||||||
|
#define FUSION_VECTOR_TIE_07192005_1242
|
||||||
|
|
||||||
|
#include <boost/preprocessor/iterate.hpp>
|
||||||
|
#include <boost/preprocessor/cat.hpp>
|
||||||
|
#include <boost/preprocessor/repetition/enum_params.hpp>
|
||||||
|
#include <boost/preprocessor/repetition/enum_binary_params.hpp>
|
||||||
|
#include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
|
||||||
|
#include <boost/preprocessor/repetition/repeat_from_to.hpp>
|
||||||
|
#include <boost/fusion/container/vector/vector.hpp>
|
||||||
|
|
||||||
|
#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
|
||||||
|
#include <boost/fusion/container/generation/detail/preprocessed/vector_tie.hpp>
|
||||||
|
#else
|
||||||
|
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
||||||
|
#pragma wave option(preserve: 2, line: 0, output: "detail/preprocessed/vector_tie" FUSION_MAX_VECTOR_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_;
|
||||||
|
|
||||||
|
namespace result_of
|
||||||
|
{
|
||||||
|
template <
|
||||||
|
BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(
|
||||||
|
FUSION_MAX_VECTOR_SIZE, typename T, void_)
|
||||||
|
, typename Extra = void_
|
||||||
|
>
|
||||||
|
struct vector_tie;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define BOOST_FUSION_REF(z, n, data) BOOST_PP_CAT(T, n)&
|
||||||
|
|
||||||
|
#define BOOST_PP_FILENAME_1 <boost/fusion/container/generation/vector_tie.hpp>
|
||||||
|
#define BOOST_PP_ITERATION_LIMITS (1, FUSION_MAX_VECTOR_SIZE)
|
||||||
|
#include BOOST_PP_ITERATE()
|
||||||
|
|
||||||
|
#undef BOOST_FUSION_REF
|
||||||
|
}}
|
||||||
|
|
||||||
|
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
||||||
|
#pragma wave option(output: null)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
|
||||||
|
|
||||||
|
#endif
|
||||||
|
#else // defined(BOOST_PP_IS_ITERATING)
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Preprocessor vertical repetition code
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#define N BOOST_PP_ITERATION()
|
||||||
|
|
||||||
|
namespace result_of
|
||||||
|
{
|
||||||
|
template <BOOST_PP_ENUM_PARAMS(N, typename T)>
|
||||||
|
#define TEXT(z, n, text) , text
|
||||||
|
struct vector_tie< BOOST_PP_ENUM_PARAMS(N, T) BOOST_PP_REPEAT_FROM_TO(BOOST_PP_DEC(N), FUSION_MAX_VECTOR_SIZE, TEXT, void_) >
|
||||||
|
#undef TEXT
|
||||||
|
{
|
||||||
|
typedef vector<BOOST_PP_ENUM(N, BOOST_FUSION_REF, _)> type;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
template <BOOST_PP_ENUM_PARAMS(N, typename T)>
|
||||||
|
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
||||||
|
inline vector<BOOST_PP_ENUM(N, BOOST_FUSION_REF, _)>
|
||||||
|
vector_tie(BOOST_PP_ENUM_BINARY_PARAMS(N, T, & arg))
|
||||||
|
{
|
||||||
|
return vector<BOOST_PP_ENUM(N, BOOST_FUSION_REF, _)>(
|
||||||
|
BOOST_PP_ENUM_PARAMS(N, arg));
|
||||||
|
}
|
||||||
|
|
||||||
|
#undef N
|
||||||
|
#endif // defined(BOOST_PP_IS_ITERATING)
|
||||||
|
|
@ -1,115 +0,0 @@
|
|||||||
/*=============================================================================
|
|
||||||
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)
|
|
||||||
==============================================================================*/
|
|
||||||
#ifndef BOOST_PP_IS_ITERATING
|
|
||||||
#if !defined(FUSION_MAKE_LIST_07192005_1239)
|
|
||||||
#define FUSION_MAKE_LIST_07192005_1239
|
|
||||||
|
|
||||||
#include <boost/preprocessor/iterate.hpp>
|
|
||||||
#include <boost/preprocessor/repetition/enum_params.hpp>
|
|
||||||
#include <boost/preprocessor/repetition/enum_binary_params.hpp>
|
|
||||||
#include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
|
|
||||||
#include <boost/preprocessor/repetition/repeat_from_to.hpp>
|
|
||||||
#include <boost/fusion/container/list/list.hpp>
|
|
||||||
#include <boost/fusion/support/detail/as_fusion_element.hpp>
|
|
||||||
|
|
||||||
#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
|
|
||||||
#include <boost/fusion/container/generation/detail/preprocessed/make_list.hpp>
|
|
||||||
#else
|
|
||||||
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
|
||||||
#pragma wave option(preserve: 2, line: 0, output: "detail/preprocessed/make_list" FUSION_MAX_LIST_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_;
|
|
||||||
|
|
||||||
namespace result_of
|
|
||||||
{
|
|
||||||
template <
|
|
||||||
BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(
|
|
||||||
FUSION_MAX_LIST_SIZE, typename T, void_)
|
|
||||||
, typename Extra = void_
|
|
||||||
>
|
|
||||||
struct make_list;
|
|
||||||
|
|
||||||
template <>
|
|
||||||
struct make_list<>
|
|
||||||
{
|
|
||||||
typedef list<> type;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
|
||||||
inline list<>
|
|
||||||
make_list()
|
|
||||||
{
|
|
||||||
return list<>();
|
|
||||||
}
|
|
||||||
|
|
||||||
#define BOOST_FUSION_AS_FUSION_ELEMENT(z, n, data) \
|
|
||||||
typename detail::as_fusion_element<BOOST_PP_CAT(T, n)>::type
|
|
||||||
|
|
||||||
#define BOOST_PP_FILENAME_1 <boost/fusion/container/generation/make_list.hpp>
|
|
||||||
#define BOOST_PP_ITERATION_LIMITS (1, FUSION_MAX_LIST_SIZE)
|
|
||||||
#include BOOST_PP_ITERATE()
|
|
||||||
|
|
||||||
#undef BOOST_FUSION_AS_FUSION_ELEMENT
|
|
||||||
|
|
||||||
}}
|
|
||||||
|
|
||||||
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
|
||||||
#pragma wave option(output: null)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
|
|
||||||
|
|
||||||
#endif
|
|
||||||
#else // defined(BOOST_PP_IS_ITERATING)
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Preprocessor vertical repetition code
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#define N BOOST_PP_ITERATION()
|
|
||||||
|
|
||||||
namespace result_of
|
|
||||||
{
|
|
||||||
template <BOOST_PP_ENUM_PARAMS(N, typename T)>
|
|
||||||
#define TEXT(z, n, text) , text
|
|
||||||
struct make_list< BOOST_PP_ENUM_PARAMS(N, T) BOOST_PP_REPEAT_FROM_TO(BOOST_PP_DEC(N), FUSION_MAX_LIST_SIZE, TEXT, void_) >
|
|
||||||
#undef TEXT
|
|
||||||
{
|
|
||||||
typedef list<BOOST_PP_ENUM(N, BOOST_FUSION_AS_FUSION_ELEMENT, _)> type;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
template <BOOST_PP_ENUM_PARAMS(N, typename T)>
|
|
||||||
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
|
||||||
inline list<BOOST_PP_ENUM(N, BOOST_FUSION_AS_FUSION_ELEMENT, _)>
|
|
||||||
make_list(BOOST_PP_ENUM_BINARY_PARAMS(N, T, const& arg))
|
|
||||||
{
|
|
||||||
return list<BOOST_PP_ENUM(N, BOOST_FUSION_AS_FUSION_ELEMENT, _)>(
|
|
||||||
BOOST_PP_ENUM_PARAMS(N, arg));
|
|
||||||
}
|
|
||||||
|
|
||||||
#undef N
|
|
||||||
#endif // defined(BOOST_PP_IS_ITERATING)
|
|
||||||
|
|
||||||
|
@ -1,134 +0,0 @@
|
|||||||
/*=============================================================================
|
|
||||||
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)
|
|
||||||
==============================================================================*/
|
|
||||||
#ifndef BOOST_PP_IS_ITERATING
|
|
||||||
#if !defined(FUSION_MAKE_SET_09162005_1125)
|
|
||||||
#define FUSION_MAKE_SET_09162005_1125
|
|
||||||
|
|
||||||
#include <boost/preprocessor/iterate.hpp>
|
|
||||||
#include <boost/preprocessor/repetition/enum_params.hpp>
|
|
||||||
#include <boost/preprocessor/repetition/enum_binary_params.hpp>
|
|
||||||
#include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
|
|
||||||
#include <boost/preprocessor/repetition/repeat_from_to.hpp>
|
|
||||||
#include <boost/fusion/support/config.hpp>
|
|
||||||
#include <boost/fusion/container/set/set.hpp>
|
|
||||||
#include <boost/fusion/support/detail/as_fusion_element.hpp>
|
|
||||||
#include <boost/fusion/support/pair.hpp>
|
|
||||||
|
|
||||||
#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
|
|
||||||
#include <boost/fusion/container/generation/detail/preprocessed/make_set.hpp>
|
|
||||||
#else
|
|
||||||
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
|
||||||
#pragma wave option(preserve: 2, line: 0, output: "detail/preprocessed/make_set" FUSION_MAX_SET_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)
|
|
||||||
#define FUSION_HASH #
|
|
||||||
#endif
|
|
||||||
|
|
||||||
namespace boost { namespace fusion
|
|
||||||
{
|
|
||||||
struct void_;
|
|
||||||
|
|
||||||
namespace result_of
|
|
||||||
{
|
|
||||||
template <
|
|
||||||
BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(
|
|
||||||
FUSION_MAX_VECTOR_SIZE, typename T, void_)
|
|
||||||
, typename Extra = void_
|
|
||||||
>
|
|
||||||
struct make_set;
|
|
||||||
|
|
||||||
template <>
|
|
||||||
struct make_set<>
|
|
||||||
{
|
|
||||||
typedef set<> type;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
// XXX:
|
|
||||||
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
|
||||||
FUSION_HASH if defined(BOOST_CLANG)
|
|
||||||
BOOST_CXX14_CONSTEXPR
|
|
||||||
FUSION_HASH else
|
|
||||||
BOOST_CONSTEXPR
|
|
||||||
FUSION_HASH endif
|
|
||||||
#else
|
|
||||||
#if defined(BOOST_CLANG)
|
|
||||||
BOOST_CXX14_CONSTEXPR
|
|
||||||
#else
|
|
||||||
BOOST_CONSTEXPR
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
BOOST_FUSION_GPU_ENABLED
|
|
||||||
inline set<>
|
|
||||||
make_set()
|
|
||||||
{
|
|
||||||
return set<>();
|
|
||||||
}
|
|
||||||
|
|
||||||
#define BOOST_FUSION_AS_FUSION_ELEMENT(z, n, data) \
|
|
||||||
typename detail::as_fusion_element<BOOST_PP_CAT(T, n)>::type
|
|
||||||
|
|
||||||
#define BOOST_PP_FILENAME_1 <boost/fusion/container/generation/make_set.hpp>
|
|
||||||
#define BOOST_PP_ITERATION_LIMITS (1, FUSION_MAX_VECTOR_SIZE)
|
|
||||||
#include BOOST_PP_ITERATE()
|
|
||||||
|
|
||||||
#undef BOOST_FUSION_ELEMENT
|
|
||||||
#undef BOOST_FUSION_AS_ELEMENT
|
|
||||||
|
|
||||||
}}
|
|
||||||
|
|
||||||
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
|
||||||
#undef FUSION_HASH
|
|
||||||
#pragma wave option(output: null)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
|
|
||||||
|
|
||||||
#endif
|
|
||||||
#else // defined(BOOST_PP_IS_ITERATING)
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Preprocessor vertical repetition code
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#define N BOOST_PP_ITERATION()
|
|
||||||
|
|
||||||
namespace result_of
|
|
||||||
{
|
|
||||||
template <BOOST_PP_ENUM_PARAMS(N, typename T)>
|
|
||||||
#define TEXT(z, n, text) , text
|
|
||||||
struct make_set< BOOST_PP_ENUM_PARAMS(N, T) BOOST_PP_REPEAT_FROM_TO(BOOST_PP_DEC(N), FUSION_MAX_SET_SIZE, TEXT, void_) >
|
|
||||||
#undef TEXT
|
|
||||||
{
|
|
||||||
typedef set<BOOST_PP_ENUM(N, BOOST_FUSION_AS_FUSION_ELEMENT, _)> type;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
template <BOOST_PP_ENUM_PARAMS(N, typename T)>
|
|
||||||
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
|
||||||
inline set<BOOST_PP_ENUM(N, BOOST_FUSION_AS_FUSION_ELEMENT, _)>
|
|
||||||
make_set(BOOST_PP_ENUM_BINARY_PARAMS(N, T, const& arg))
|
|
||||||
{
|
|
||||||
return set<BOOST_PP_ENUM(N, BOOST_FUSION_AS_FUSION_ELEMENT, _)>(
|
|
||||||
BOOST_PP_ENUM_PARAMS(N, arg));
|
|
||||||
}
|
|
||||||
|
|
||||||
#undef N
|
|
||||||
#endif // defined(BOOST_PP_IS_ITERATING)
|
|
||||||
|
|
||||||
|
@ -1,115 +0,0 @@
|
|||||||
/*=============================================================================
|
|
||||||
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)
|
|
||||||
==============================================================================*/
|
|
||||||
#ifndef BOOST_PP_IS_ITERATING
|
|
||||||
#if !defined(FUSION_MAKE_VECTOR_07162005_0243)
|
|
||||||
#define FUSION_MAKE_VECTOR_07162005_0243
|
|
||||||
|
|
||||||
#include <boost/preprocessor/iterate.hpp>
|
|
||||||
#include <boost/preprocessor/repetition/enum_params.hpp>
|
|
||||||
#include <boost/preprocessor/repetition/enum_binary_params.hpp>
|
|
||||||
#include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
|
|
||||||
#include <boost/preprocessor/repetition/repeat_from_to.hpp>
|
|
||||||
#include <boost/fusion/container/vector/vector.hpp>
|
|
||||||
#include <boost/fusion/support/detail/as_fusion_element.hpp>
|
|
||||||
|
|
||||||
#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
|
|
||||||
#include <boost/fusion/container/generation/detail/preprocessed/make_vector.hpp>
|
|
||||||
#else
|
|
||||||
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
|
||||||
#pragma wave option(preserve: 2, line: 0, output: "detail/preprocessed/make_vector" FUSION_MAX_VECTOR_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_;
|
|
||||||
|
|
||||||
namespace result_of
|
|
||||||
{
|
|
||||||
template <
|
|
||||||
BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(
|
|
||||||
FUSION_MAX_VECTOR_SIZE, typename T, void_)
|
|
||||||
, typename Extra = void_
|
|
||||||
>
|
|
||||||
struct make_vector;
|
|
||||||
|
|
||||||
template <>
|
|
||||||
struct make_vector<>
|
|
||||||
{
|
|
||||||
typedef vector0<> type;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
|
||||||
inline vector0<>
|
|
||||||
make_vector()
|
|
||||||
{
|
|
||||||
return vector0<>();
|
|
||||||
}
|
|
||||||
|
|
||||||
#define BOOST_FUSION_AS_FUSION_ELEMENT(z, n, data) \
|
|
||||||
typename detail::as_fusion_element<BOOST_PP_CAT(T, n)>::type
|
|
||||||
|
|
||||||
#define BOOST_PP_FILENAME_1 <boost/fusion/container/generation/make_vector.hpp>
|
|
||||||
#define BOOST_PP_ITERATION_LIMITS (1, FUSION_MAX_VECTOR_SIZE)
|
|
||||||
#include BOOST_PP_ITERATE()
|
|
||||||
|
|
||||||
#undef BOOST_FUSION_AS_FUSION_ELEMENT
|
|
||||||
|
|
||||||
}}
|
|
||||||
|
|
||||||
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
|
||||||
#pragma wave option(output: null)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
|
|
||||||
|
|
||||||
#endif
|
|
||||||
#else // defined(BOOST_PP_IS_ITERATING)
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Preprocessor vertical repetition code
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#define N BOOST_PP_ITERATION()
|
|
||||||
|
|
||||||
namespace result_of
|
|
||||||
{
|
|
||||||
template <BOOST_PP_ENUM_PARAMS(N, typename T)>
|
|
||||||
#define TEXT(z, n, text) , text
|
|
||||||
struct make_vector< BOOST_PP_ENUM_PARAMS(N, T) BOOST_PP_REPEAT_FROM_TO(BOOST_PP_DEC(N), FUSION_MAX_VECTOR_SIZE, TEXT, void_) >
|
|
||||||
#undef TEXT
|
|
||||||
{
|
|
||||||
typedef BOOST_PP_CAT(vector, N)<BOOST_PP_ENUM(N, BOOST_FUSION_AS_FUSION_ELEMENT, _)> type;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
template <BOOST_PP_ENUM_PARAMS(N, typename T)>
|
|
||||||
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
|
||||||
inline BOOST_PP_CAT(vector, N)<BOOST_PP_ENUM(N, BOOST_FUSION_AS_FUSION_ELEMENT, _)>
|
|
||||||
make_vector(BOOST_PP_ENUM_BINARY_PARAMS(N, T, const& arg))
|
|
||||||
{
|
|
||||||
return BOOST_PP_CAT(vector, N)<BOOST_PP_ENUM(N, BOOST_FUSION_AS_FUSION_ELEMENT, _)>(
|
|
||||||
BOOST_PP_ENUM_PARAMS(N, arg));
|
|
||||||
}
|
|
||||||
|
|
||||||
#undef N
|
|
||||||
#endif // defined(BOOST_PP_IS_ITERATING)
|
|
||||||
|
|
||||||
|
@ -1,100 +0,0 @@
|
|||||||
/*=============================================================================
|
|
||||||
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)
|
|
||||||
==============================================================================*/
|
|
||||||
#ifndef BOOST_PP_IS_ITERATING
|
|
||||||
#if !defined(FUSION_VECTOR_TIE_07192005_1242)
|
|
||||||
#define FUSION_VECTOR_TIE_07192005_1242
|
|
||||||
|
|
||||||
#include <boost/preprocessor/iterate.hpp>
|
|
||||||
#include <boost/preprocessor/cat.hpp>
|
|
||||||
#include <boost/preprocessor/repetition/enum_params.hpp>
|
|
||||||
#include <boost/preprocessor/repetition/enum_binary_params.hpp>
|
|
||||||
#include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
|
|
||||||
#include <boost/preprocessor/repetition/repeat_from_to.hpp>
|
|
||||||
#include <boost/fusion/container/vector/vector.hpp>
|
|
||||||
|
|
||||||
#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
|
|
||||||
#include <boost/fusion/container/generation/detail/preprocessed/vector_tie.hpp>
|
|
||||||
#else
|
|
||||||
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
|
||||||
#pragma wave option(preserve: 2, line: 0, output: "detail/preprocessed/vector_tie" FUSION_MAX_VECTOR_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_;
|
|
||||||
|
|
||||||
namespace result_of
|
|
||||||
{
|
|
||||||
template <
|
|
||||||
BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(
|
|
||||||
FUSION_MAX_VECTOR_SIZE, typename T, void_)
|
|
||||||
, typename Extra = void_
|
|
||||||
>
|
|
||||||
struct vector_tie;
|
|
||||||
}
|
|
||||||
|
|
||||||
#define BOOST_FUSION_REF(z, n, data) BOOST_PP_CAT(T, n)&
|
|
||||||
|
|
||||||
#define BOOST_PP_FILENAME_1 <boost/fusion/container/generation/vector_tie.hpp>
|
|
||||||
#define BOOST_PP_ITERATION_LIMITS (1, FUSION_MAX_VECTOR_SIZE)
|
|
||||||
#include BOOST_PP_ITERATE()
|
|
||||||
|
|
||||||
#undef BOOST_FUSION_REF
|
|
||||||
}}
|
|
||||||
|
|
||||||
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
|
||||||
#pragma wave option(output: null)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
|
|
||||||
|
|
||||||
#endif
|
|
||||||
#else // defined(BOOST_PP_IS_ITERATING)
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Preprocessor vertical repetition code
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#define N BOOST_PP_ITERATION()
|
|
||||||
|
|
||||||
namespace result_of
|
|
||||||
{
|
|
||||||
template <BOOST_PP_ENUM_PARAMS(N, typename T)>
|
|
||||||
#define TEXT(z, n, text) , text
|
|
||||||
struct vector_tie< BOOST_PP_ENUM_PARAMS(N, T) BOOST_PP_REPEAT_FROM_TO(BOOST_PP_DEC(N), FUSION_MAX_VECTOR_SIZE, TEXT, void_) >
|
|
||||||
#undef TEXT
|
|
||||||
{
|
|
||||||
typedef vector<BOOST_PP_ENUM(N, BOOST_FUSION_REF, _)> type;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
template <BOOST_PP_ENUM_PARAMS(N, typename T)>
|
|
||||||
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
|
||||||
inline vector<BOOST_PP_ENUM(N, BOOST_FUSION_REF, _)>
|
|
||||||
vector_tie(BOOST_PP_ENUM_BINARY_PARAMS(N, T, & arg))
|
|
||||||
{
|
|
||||||
return vector<BOOST_PP_ENUM(N, BOOST_FUSION_REF, _)>(
|
|
||||||
BOOST_PP_ENUM_PARAMS(N, arg));
|
|
||||||
}
|
|
||||||
|
|
||||||
#undef N
|
|
||||||
#endif // defined(BOOST_PP_IS_ITERATING)
|
|
||||||
|
|
||||||
|
23
include/boost/fusion/container/list/detail/cpp03/limits.hpp
Normal file
23
include/boost/fusion/container/list/detail/cpp03/limits.hpp
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/*=============================================================================
|
||||||
|
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_LIST_LIMITS_07172005_0112)
|
||||||
|
#define FUSION_LIST_LIMITS_07172005_0112
|
||||||
|
|
||||||
|
#include <boost/fusion/support/detail/pp_round.hpp>
|
||||||
|
|
||||||
|
#if !defined(FUSION_MAX_LIST_SIZE)
|
||||||
|
# define FUSION_MAX_LIST_SIZE 10
|
||||||
|
#else
|
||||||
|
# if FUSION_MAX_LIST_SIZE < 3
|
||||||
|
# undef FUSION_MAX_LIST_SIZE
|
||||||
|
# define FUSION_MAX_LIST_SIZE 10
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FUSION_MAX_LIST_SIZE_STR BOOST_PP_STRINGIZE(BOOST_FUSION_PP_ROUND_UP(FUSION_MAX_LIST_SIZE))
|
||||||
|
|
||||||
|
#endif
|
103
include/boost/fusion/container/list/detail/cpp03/list.hpp
Normal file
103
include/boost/fusion/container/list/detail/cpp03/list.hpp
Normal file
@ -0,0 +1,103 @@
|
|||||||
|
/*=============================================================================
|
||||||
|
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_LIST_07172005_1153)
|
||||||
|
#define FUSION_LIST_07172005_1153
|
||||||
|
|
||||||
|
#include <boost/fusion/support/config.hpp>
|
||||||
|
#include <boost/fusion/container/list/list_fwd.hpp>
|
||||||
|
#include <boost/fusion/container/list/detail/list_to_cons.hpp>
|
||||||
|
#include <boost/fusion/support/is_sequence.hpp>
|
||||||
|
#include <boost/core/enable_if.hpp>
|
||||||
|
|
||||||
|
#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
|
||||||
|
#include <boost/fusion/container/list/detail/preprocessed/list.hpp>
|
||||||
|
#else
|
||||||
|
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
||||||
|
#pragma wave option(preserve: 2, line: 0, output: "detail/preprocessed/list" FUSION_MAX_LIST_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 nil_;
|
||||||
|
struct void_;
|
||||||
|
|
||||||
|
template <BOOST_PP_ENUM_PARAMS(FUSION_MAX_LIST_SIZE, typename T)>
|
||||||
|
struct list
|
||||||
|
: detail::list_to_cons<BOOST_PP_ENUM_PARAMS(FUSION_MAX_LIST_SIZE, T)>::type
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
typedef
|
||||||
|
detail::list_to_cons<BOOST_PP_ENUM_PARAMS(FUSION_MAX_LIST_SIZE, T)>
|
||||||
|
list_to_cons;
|
||||||
|
|
||||||
|
public:
|
||||||
|
typedef typename list_to_cons::type inherited_type;
|
||||||
|
|
||||||
|
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
||||||
|
list()
|
||||||
|
: inherited_type() {}
|
||||||
|
|
||||||
|
template <BOOST_PP_ENUM_PARAMS(FUSION_MAX_LIST_SIZE, typename U)>
|
||||||
|
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
||||||
|
list(list<BOOST_PP_ENUM_PARAMS(FUSION_MAX_LIST_SIZE, U)> const& rhs)
|
||||||
|
: inherited_type(rhs) {}
|
||||||
|
|
||||||
|
template <typename Sequence>
|
||||||
|
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
||||||
|
list(Sequence const& rhs
|
||||||
|
, typename boost::enable_if<traits::is_sequence<Sequence> >::type* = 0)
|
||||||
|
: inherited_type(rhs) {}
|
||||||
|
|
||||||
|
// Expand a couple of forwarding constructors for arguments
|
||||||
|
// of type (T0), (T0, T1), (T0, T1, T2) etc. Exanple:
|
||||||
|
//
|
||||||
|
// list(
|
||||||
|
// typename detail::call_param<T0>::type arg0
|
||||||
|
// , typename detail::call_param<T1>::type arg1)
|
||||||
|
// : inherited_type(list_to_cons::call(arg0, arg1)) {}
|
||||||
|
#include <boost/fusion/container/list/detail/list_forward_ctor.hpp>
|
||||||
|
|
||||||
|
template <BOOST_PP_ENUM_PARAMS(FUSION_MAX_LIST_SIZE, typename U)>
|
||||||
|
BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
||||||
|
list&
|
||||||
|
operator=(list<BOOST_PP_ENUM_PARAMS(FUSION_MAX_LIST_SIZE, U)> const& rhs)
|
||||||
|
{
|
||||||
|
inherited_type::operator=(rhs);
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename Sequence>
|
||||||
|
BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
||||||
|
typename boost::enable_if<traits::is_sequence<Sequence>, list&>::type
|
||||||
|
operator=(Sequence const& rhs)
|
||||||
|
{
|
||||||
|
inherited_type::operator=(rhs);
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}}
|
||||||
|
|
||||||
|
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
||||||
|
#pragma wave option(output: null)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
|
||||||
|
|
||||||
|
#endif
|
@ -0,0 +1,48 @@
|
|||||||
|
/*=============================================================================
|
||||||
|
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)
|
||||||
|
==============================================================================*/
|
||||||
|
#ifndef BOOST_PP_IS_ITERATING
|
||||||
|
#if !defined(FUSION_LIST_FORWARD_CTOR_07172005_0113)
|
||||||
|
#define FUSION_LIST_FORWARD_CTOR_07172005_0113
|
||||||
|
|
||||||
|
#include <boost/preprocessor/iterate.hpp>
|
||||||
|
#include <boost/preprocessor/cat.hpp>
|
||||||
|
#include <boost/preprocessor/repetition/enum_shifted.hpp>
|
||||||
|
#include <boost/preprocessor/repetition/enum_binary_params.hpp>
|
||||||
|
#include <boost/preprocessor/repetition/repeat.hpp>
|
||||||
|
|
||||||
|
#define FUSION_LIST_CTOR_MAKE_CONS(z, n, type) tie_cons(BOOST_PP_CAT(_, n)
|
||||||
|
#define FUSION_LIST_CL_PAREN(z, n, type) )
|
||||||
|
|
||||||
|
#define BOOST_PP_FILENAME_1 \
|
||||||
|
<boost/fusion/container/list/detail/list_forward_ctor.hpp>
|
||||||
|
#define BOOST_PP_ITERATION_LIMITS (1, FUSION_MAX_LIST_SIZE)
|
||||||
|
#include BOOST_PP_ITERATE()
|
||||||
|
|
||||||
|
#undef FUSION_LIST_CTOR_MAKE_CONS
|
||||||
|
#undef FUSION_LIST_CL_PAREN
|
||||||
|
|
||||||
|
#endif
|
||||||
|
#else // defined(BOOST_PP_IS_ITERATING)
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Preprocessor vertical repetition code
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
#define N BOOST_PP_ITERATION()
|
||||||
|
|
||||||
|
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
||||||
|
#if N == 1
|
||||||
|
explicit
|
||||||
|
#endif
|
||||||
|
list(BOOST_PP_ENUM_BINARY_PARAMS(
|
||||||
|
N, typename detail::call_param<T, >::type arg))
|
||||||
|
: inherited_type(list_to_cons::call(BOOST_PP_ENUM_PARAMS(N, arg)))
|
||||||
|
{}
|
||||||
|
|
||||||
|
#undef N
|
||||||
|
#endif // defined(BOOST_PP_IS_ITERATING)
|
||||||
|
|
@ -0,0 +1,51 @@
|
|||||||
|
/*=============================================================================
|
||||||
|
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_LIST_FORWARD_07172005_0224)
|
||||||
|
#define FUSION_LIST_FORWARD_07172005_0224
|
||||||
|
|
||||||
|
#include <boost/fusion/support/config.hpp>
|
||||||
|
#include <boost/fusion/container/list/limits.hpp>
|
||||||
|
#include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
|
||||||
|
|
||||||
|
#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
|
||||||
|
#include <boost/fusion/container/list/detail/preprocessed/list_fwd.hpp>
|
||||||
|
#else
|
||||||
|
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
||||||
|
#pragma wave option(preserve: 2, line: 0, output: "detail/preprocessed/list" FUSION_MAX_LIST_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_;
|
||||||
|
|
||||||
|
template <
|
||||||
|
BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(
|
||||||
|
FUSION_MAX_LIST_SIZE, typename T, void_)
|
||||||
|
>
|
||||||
|
struct list;
|
||||||
|
}}
|
||||||
|
|
||||||
|
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
||||||
|
#pragma wave option(output: null)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
|
||||||
|
|
||||||
|
#endif
|
@ -0,0 +1,76 @@
|
|||||||
|
/*=============================================================================
|
||||||
|
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_LIST_TO_CONS_07172005_1041)
|
||||||
|
#define FUSION_LIST_TO_CONS_07172005_1041
|
||||||
|
|
||||||
|
#include <boost/fusion/support/config.hpp>
|
||||||
|
#include <boost/fusion/container/list/cons.hpp>
|
||||||
|
#include <boost/fusion/container/list/limits.hpp>
|
||||||
|
#include <boost/preprocessor/repetition/enum.hpp>
|
||||||
|
#include <boost/preprocessor/repetition/enum_params.hpp>
|
||||||
|
#include <boost/preprocessor/repetition/enum_shifted_params.hpp>
|
||||||
|
#include <boost/preprocessor/arithmetic/dec.hpp>
|
||||||
|
|
||||||
|
#define FUSION_VOID(z, n, _) void_
|
||||||
|
|
||||||
|
namespace boost { namespace fusion
|
||||||
|
{
|
||||||
|
struct nil_;
|
||||||
|
struct void_;
|
||||||
|
}}
|
||||||
|
|
||||||
|
#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
|
||||||
|
#include <boost/fusion/container/list/detail/preprocessed/list_to_cons.hpp>
|
||||||
|
#else
|
||||||
|
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
||||||
|
#pragma wave option(preserve: 2, line: 0, output: "preprocessed/list_to_cons" FUSION_MAX_LIST_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 { namespace detail
|
||||||
|
{
|
||||||
|
template <BOOST_PP_ENUM_PARAMS(FUSION_MAX_LIST_SIZE, typename T)>
|
||||||
|
struct list_to_cons
|
||||||
|
{
|
||||||
|
typedef T0 head_type;
|
||||||
|
typedef list_to_cons<
|
||||||
|
BOOST_PP_ENUM_SHIFTED_PARAMS(FUSION_MAX_LIST_SIZE, T), void_>
|
||||||
|
tail_list_to_cons;
|
||||||
|
typedef typename tail_list_to_cons::type tail_type;
|
||||||
|
|
||||||
|
typedef cons<head_type, tail_type> type;
|
||||||
|
|
||||||
|
#include <boost/fusion/container/list/detail/list_to_cons_call.hpp>
|
||||||
|
};
|
||||||
|
|
||||||
|
template <>
|
||||||
|
struct list_to_cons<BOOST_PP_ENUM(FUSION_MAX_LIST_SIZE, FUSION_VOID, _)>
|
||||||
|
{
|
||||||
|
typedef nil_ type;
|
||||||
|
};
|
||||||
|
}}}
|
||||||
|
|
||||||
|
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
||||||
|
#pragma wave option(output: null)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
|
||||||
|
|
||||||
|
#undef FUSION_VOID
|
||||||
|
#endif
|
@ -0,0 +1,44 @@
|
|||||||
|
/*=============================================================================
|
||||||
|
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)
|
||||||
|
==============================================================================*/
|
||||||
|
#ifndef BOOST_PP_IS_ITERATING
|
||||||
|
#if !defined(FUSION_LIST_TO_CONS_CALL_07192005_0138)
|
||||||
|
#define FUSION_LIST_TO_CONS_CALL_07192005_0138
|
||||||
|
|
||||||
|
#include <boost/preprocessor/iterate.hpp>
|
||||||
|
#include <boost/preprocessor/repetition/enum_shifted_params.hpp>
|
||||||
|
#include <boost/preprocessor/repetition/enum_binary_params.hpp>
|
||||||
|
|
||||||
|
#define BOOST_PP_FILENAME_1 \
|
||||||
|
<boost/fusion/container/list/detail/list_to_cons_call.hpp>
|
||||||
|
#define BOOST_PP_ITERATION_LIMITS (1, FUSION_MAX_LIST_SIZE)
|
||||||
|
#include BOOST_PP_ITERATE()
|
||||||
|
|
||||||
|
#endif
|
||||||
|
#else // defined(BOOST_PP_IS_ITERATING)
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Preprocessor vertical repetition code
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
#define N BOOST_PP_ITERATION()
|
||||||
|
|
||||||
|
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
||||||
|
static type
|
||||||
|
call(BOOST_PP_ENUM_BINARY_PARAMS(
|
||||||
|
N, typename detail::call_param<T, >::type arg))
|
||||||
|
{
|
||||||
|
return type(arg0
|
||||||
|
#if N > 1
|
||||||
|
, tail_list_to_cons::call(BOOST_PP_ENUM_SHIFTED_PARAMS(N, arg)));
|
||||||
|
#else
|
||||||
|
);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
#undef N
|
||||||
|
#endif // defined(BOOST_PP_IS_ITERATING)
|
||||||
|
|
@ -1,48 +0,0 @@
|
|||||||
/*=============================================================================
|
|
||||||
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)
|
|
||||||
==============================================================================*/
|
|
||||||
#ifndef BOOST_PP_IS_ITERATING
|
|
||||||
#if !defined(FUSION_LIST_FORWARD_CTOR_07172005_0113)
|
|
||||||
#define FUSION_LIST_FORWARD_CTOR_07172005_0113
|
|
||||||
|
|
||||||
#include <boost/preprocessor/iterate.hpp>
|
|
||||||
#include <boost/preprocessor/cat.hpp>
|
|
||||||
#include <boost/preprocessor/repetition/enum_shifted.hpp>
|
|
||||||
#include <boost/preprocessor/repetition/enum_binary_params.hpp>
|
|
||||||
#include <boost/preprocessor/repetition/repeat.hpp>
|
|
||||||
|
|
||||||
#define FUSION_LIST_CTOR_MAKE_CONS(z, n, type) tie_cons(BOOST_PP_CAT(_, n)
|
|
||||||
#define FUSION_LIST_CL_PAREN(z, n, type) )
|
|
||||||
|
|
||||||
#define BOOST_PP_FILENAME_1 \
|
|
||||||
<boost/fusion/container/list/detail/list_forward_ctor.hpp>
|
|
||||||
#define BOOST_PP_ITERATION_LIMITS (1, FUSION_MAX_LIST_SIZE)
|
|
||||||
#include BOOST_PP_ITERATE()
|
|
||||||
|
|
||||||
#undef FUSION_LIST_CTOR_MAKE_CONS
|
|
||||||
#undef FUSION_LIST_CL_PAREN
|
|
||||||
|
|
||||||
#endif
|
|
||||||
#else // defined(BOOST_PP_IS_ITERATING)
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Preprocessor vertical repetition code
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
#define N BOOST_PP_ITERATION()
|
|
||||||
|
|
||||||
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
|
||||||
#if N == 1
|
|
||||||
explicit
|
|
||||||
#endif
|
|
||||||
list(BOOST_PP_ENUM_BINARY_PARAMS(
|
|
||||||
N, typename detail::call_param<T, >::type arg))
|
|
||||||
: inherited_type(list_to_cons::call(BOOST_PP_ENUM_PARAMS(N, arg)))
|
|
||||||
{}
|
|
||||||
|
|
||||||
#undef N
|
|
||||||
#endif // defined(BOOST_PP_IS_ITERATING)
|
|
||||||
|
|
||||||
|
@ -1,76 +0,0 @@
|
|||||||
/*=============================================================================
|
|
||||||
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_LIST_TO_CONS_07172005_1041)
|
|
||||||
#define FUSION_LIST_TO_CONS_07172005_1041
|
|
||||||
|
|
||||||
#include <boost/fusion/support/config.hpp>
|
|
||||||
#include <boost/fusion/container/list/cons.hpp>
|
|
||||||
#include <boost/fusion/container/list/limits.hpp>
|
|
||||||
#include <boost/preprocessor/repetition/enum.hpp>
|
|
||||||
#include <boost/preprocessor/repetition/enum_params.hpp>
|
|
||||||
#include <boost/preprocessor/repetition/enum_shifted_params.hpp>
|
|
||||||
#include <boost/preprocessor/arithmetic/dec.hpp>
|
|
||||||
|
|
||||||
#define FUSION_VOID(z, n, _) void_
|
|
||||||
|
|
||||||
namespace boost { namespace fusion
|
|
||||||
{
|
|
||||||
struct nil_;
|
|
||||||
struct void_;
|
|
||||||
}}
|
|
||||||
|
|
||||||
#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
|
|
||||||
#include <boost/fusion/container/list/detail/preprocessed/list_to_cons.hpp>
|
|
||||||
#else
|
|
||||||
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
|
||||||
#pragma wave option(preserve: 2, line: 0, output: "preprocessed/list_to_cons" FUSION_MAX_LIST_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 { namespace detail
|
|
||||||
{
|
|
||||||
template <BOOST_PP_ENUM_PARAMS(FUSION_MAX_LIST_SIZE, typename T)>
|
|
||||||
struct list_to_cons
|
|
||||||
{
|
|
||||||
typedef T0 head_type;
|
|
||||||
typedef list_to_cons<
|
|
||||||
BOOST_PP_ENUM_SHIFTED_PARAMS(FUSION_MAX_LIST_SIZE, T), void_>
|
|
||||||
tail_list_to_cons;
|
|
||||||
typedef typename tail_list_to_cons::type tail_type;
|
|
||||||
|
|
||||||
typedef cons<head_type, tail_type> type;
|
|
||||||
|
|
||||||
#include <boost/fusion/container/list/detail/list_to_cons_call.hpp>
|
|
||||||
};
|
|
||||||
|
|
||||||
template <>
|
|
||||||
struct list_to_cons<BOOST_PP_ENUM(FUSION_MAX_LIST_SIZE, FUSION_VOID, _)>
|
|
||||||
{
|
|
||||||
typedef nil_ type;
|
|
||||||
};
|
|
||||||
}}}
|
|
||||||
|
|
||||||
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
|
||||||
#pragma wave option(output: null)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
|
|
||||||
|
|
||||||
#undef FUSION_VOID
|
|
||||||
#endif
|
|
||||||
|
@ -1,44 +0,0 @@
|
|||||||
/*=============================================================================
|
|
||||||
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)
|
|
||||||
==============================================================================*/
|
|
||||||
#ifndef BOOST_PP_IS_ITERATING
|
|
||||||
#if !defined(FUSION_LIST_TO_CONS_CALL_07192005_0138)
|
|
||||||
#define FUSION_LIST_TO_CONS_CALL_07192005_0138
|
|
||||||
|
|
||||||
#include <boost/preprocessor/iterate.hpp>
|
|
||||||
#include <boost/preprocessor/repetition/enum_shifted_params.hpp>
|
|
||||||
#include <boost/preprocessor/repetition/enum_binary_params.hpp>
|
|
||||||
|
|
||||||
#define BOOST_PP_FILENAME_1 \
|
|
||||||
<boost/fusion/container/list/detail/list_to_cons_call.hpp>
|
|
||||||
#define BOOST_PP_ITERATION_LIMITS (1, FUSION_MAX_LIST_SIZE)
|
|
||||||
#include BOOST_PP_ITERATE()
|
|
||||||
|
|
||||||
#endif
|
|
||||||
#else // defined(BOOST_PP_IS_ITERATING)
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Preprocessor vertical repetition code
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
#define N BOOST_PP_ITERATION()
|
|
||||||
|
|
||||||
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
|
||||||
static type
|
|
||||||
call(BOOST_PP_ENUM_BINARY_PARAMS(
|
|
||||||
N, typename detail::call_param<T, >::type arg))
|
|
||||||
{
|
|
||||||
return type(arg0
|
|
||||||
#if N > 1
|
|
||||||
, tail_list_to_cons::call(BOOST_PP_ENUM_SHIFTED_PARAMS(N, arg)));
|
|
||||||
#else
|
|
||||||
);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
#undef N
|
|
||||||
#endif // defined(BOOST_PP_IS_ITERATING)
|
|
||||||
|
|
||||||
|
@ -1,23 +0,0 @@
|
|||||||
/*=============================================================================
|
|
||||||
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_LIST_LIMITS_07172005_0112)
|
|
||||||
#define FUSION_LIST_LIMITS_07172005_0112
|
|
||||||
|
|
||||||
#include <boost/fusion/support/detail/pp_round.hpp>
|
|
||||||
|
|
||||||
#if !defined(FUSION_MAX_LIST_SIZE)
|
|
||||||
# define FUSION_MAX_LIST_SIZE 10
|
|
||||||
#else
|
|
||||||
# if FUSION_MAX_LIST_SIZE < 3
|
|
||||||
# undef FUSION_MAX_LIST_SIZE
|
|
||||||
# define FUSION_MAX_LIST_SIZE 10
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define FUSION_MAX_LIST_SIZE_STR BOOST_PP_STRINGIZE(BOOST_FUSION_PP_ROUND_UP(FUSION_MAX_LIST_SIZE))
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
@ -1,103 +0,0 @@
|
|||||||
/*=============================================================================
|
|
||||||
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_LIST_07172005_1153)
|
|
||||||
#define FUSION_LIST_07172005_1153
|
|
||||||
|
|
||||||
#include <boost/fusion/support/config.hpp>
|
|
||||||
#include <boost/fusion/container/list/list_fwd.hpp>
|
|
||||||
#include <boost/fusion/container/list/detail/list_to_cons.hpp>
|
|
||||||
#include <boost/fusion/support/is_sequence.hpp>
|
|
||||||
#include <boost/core/enable_if.hpp>
|
|
||||||
|
|
||||||
#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
|
|
||||||
#include <boost/fusion/container/list/detail/preprocessed/list.hpp>
|
|
||||||
#else
|
|
||||||
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
|
||||||
#pragma wave option(preserve: 2, line: 0, output: "detail/preprocessed/list" FUSION_MAX_LIST_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 nil_;
|
|
||||||
struct void_;
|
|
||||||
|
|
||||||
template <BOOST_PP_ENUM_PARAMS(FUSION_MAX_LIST_SIZE, typename T)>
|
|
||||||
struct list
|
|
||||||
: detail::list_to_cons<BOOST_PP_ENUM_PARAMS(FUSION_MAX_LIST_SIZE, T)>::type
|
|
||||||
{
|
|
||||||
private:
|
|
||||||
typedef
|
|
||||||
detail::list_to_cons<BOOST_PP_ENUM_PARAMS(FUSION_MAX_LIST_SIZE, T)>
|
|
||||||
list_to_cons;
|
|
||||||
|
|
||||||
public:
|
|
||||||
typedef typename list_to_cons::type inherited_type;
|
|
||||||
|
|
||||||
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
|
||||||
list()
|
|
||||||
: inherited_type() {}
|
|
||||||
|
|
||||||
template <BOOST_PP_ENUM_PARAMS(FUSION_MAX_LIST_SIZE, typename U)>
|
|
||||||
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
|
||||||
list(list<BOOST_PP_ENUM_PARAMS(FUSION_MAX_LIST_SIZE, U)> const& rhs)
|
|
||||||
: inherited_type(rhs) {}
|
|
||||||
|
|
||||||
template <typename Sequence>
|
|
||||||
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
|
||||||
list(Sequence const& rhs
|
|
||||||
, typename boost::enable_if<traits::is_sequence<Sequence> >::type* = 0)
|
|
||||||
: inherited_type(rhs) {}
|
|
||||||
|
|
||||||
// Expand a couple of forwarding constructors for arguments
|
|
||||||
// of type (T0), (T0, T1), (T0, T1, T2) etc. Exanple:
|
|
||||||
//
|
|
||||||
// list(
|
|
||||||
// typename detail::call_param<T0>::type arg0
|
|
||||||
// , typename detail::call_param<T1>::type arg1)
|
|
||||||
// : inherited_type(list_to_cons::call(arg0, arg1)) {}
|
|
||||||
#include <boost/fusion/container/list/detail/list_forward_ctor.hpp>
|
|
||||||
|
|
||||||
template <BOOST_PP_ENUM_PARAMS(FUSION_MAX_LIST_SIZE, typename U)>
|
|
||||||
BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
|
||||||
list&
|
|
||||||
operator=(list<BOOST_PP_ENUM_PARAMS(FUSION_MAX_LIST_SIZE, U)> const& rhs)
|
|
||||||
{
|
|
||||||
inherited_type::operator=(rhs);
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
template <typename Sequence>
|
|
||||||
BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
|
||||||
typename boost::enable_if<traits::is_sequence<Sequence>, list&>::type
|
|
||||||
operator=(Sequence const& rhs)
|
|
||||||
{
|
|
||||||
inherited_type::operator=(rhs);
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}}
|
|
||||||
|
|
||||||
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
|
||||||
#pragma wave option(output: null)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
@ -1,51 +0,0 @@
|
|||||||
/*=============================================================================
|
|
||||||
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_LIST_FORWARD_07172005_0224)
|
|
||||||
#define FUSION_LIST_FORWARD_07172005_0224
|
|
||||||
|
|
||||||
#include <boost/fusion/support/config.hpp>
|
|
||||||
#include <boost/fusion/container/list/limits.hpp>
|
|
||||||
#include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
|
|
||||||
|
|
||||||
#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
|
|
||||||
#include <boost/fusion/container/list/detail/preprocessed/list_fwd.hpp>
|
|
||||||
#else
|
|
||||||
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
|
||||||
#pragma wave option(preserve: 2, line: 0, output: "detail/preprocessed/list" FUSION_MAX_LIST_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_;
|
|
||||||
|
|
||||||
template <
|
|
||||||
BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(
|
|
||||||
FUSION_MAX_LIST_SIZE, typename T, void_)
|
|
||||||
>
|
|
||||||
struct list;
|
|
||||||
}}
|
|
||||||
|
|
||||||
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
|
||||||
#pragma wave option(output: null)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
@ -1,139 +0,0 @@
|
|||||||
/*=============================================================================
|
|
||||||
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)
|
|
||||||
==============================================================================*/
|
|
||||||
#ifndef BOOST_PP_IS_ITERATING
|
|
||||||
#if !defined(FUSION_AS_SET_0932005_1341)
|
|
||||||
#define FUSION_AS_SET_0932005_1341
|
|
||||||
|
|
||||||
#include <boost/preprocessor/iterate.hpp>
|
|
||||||
#include <boost/preprocessor/repetition/enum_params.hpp>
|
|
||||||
#include <boost/preprocessor/repetition/enum_binary_params.hpp>
|
|
||||||
#include <boost/preprocessor/repetition/repeat.hpp>
|
|
||||||
#include <boost/preprocessor/cat.hpp>
|
|
||||||
#include <boost/preprocessor/inc.hpp>
|
|
||||||
#include <boost/preprocessor/dec.hpp>
|
|
||||||
#include <boost/fusion/container/set/set.hpp>
|
|
||||||
#include <boost/fusion/iterator/value_of.hpp>
|
|
||||||
#include <boost/fusion/iterator/deref.hpp>
|
|
||||||
#include <boost/fusion/iterator/next.hpp>
|
|
||||||
|
|
||||||
namespace boost { namespace fusion { namespace detail
|
|
||||||
{
|
|
||||||
BOOST_FUSION_BARRIER_BEGIN
|
|
||||||
|
|
||||||
template <int size>
|
|
||||||
struct as_set;
|
|
||||||
|
|
||||||
template <>
|
|
||||||
struct as_set<0>
|
|
||||||
{
|
|
||||||
template <typename Iterator>
|
|
||||||
struct apply
|
|
||||||
{
|
|
||||||
typedef set<> type;
|
|
||||||
};
|
|
||||||
|
|
||||||
template <typename Iterator>
|
|
||||||
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
|
||||||
static typename apply<Iterator>::type
|
|
||||||
call(Iterator)
|
|
||||||
{
|
|
||||||
return set<>();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
BOOST_FUSION_BARRIER_END
|
|
||||||
}}}
|
|
||||||
|
|
||||||
#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
|
|
||||||
#include <boost/fusion/container/set/detail/preprocessed/as_set.hpp>
|
|
||||||
#else
|
|
||||||
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
|
||||||
#pragma wave option(preserve: 2, line: 0, output: "preprocessed/as_set" FUSION_MAX_SET_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 { namespace detail
|
|
||||||
{
|
|
||||||
BOOST_FUSION_BARRIER_BEGIN
|
|
||||||
|
|
||||||
#define BOOST_FUSION_NEXT_ITERATOR(z, n, data) \
|
|
||||||
typedef typename fusion::result_of::next<BOOST_PP_CAT(I, n)>::type \
|
|
||||||
BOOST_PP_CAT(I, BOOST_PP_INC(n));
|
|
||||||
|
|
||||||
#define BOOST_FUSION_NEXT_CALL_ITERATOR(z, n, data) \
|
|
||||||
typename gen::BOOST_PP_CAT(I, BOOST_PP_INC(n)) \
|
|
||||||
BOOST_PP_CAT(i, BOOST_PP_INC(n)) = fusion::next(BOOST_PP_CAT(i, n));
|
|
||||||
|
|
||||||
#define BOOST_FUSION_VALUE_OF_ITERATOR(z, n, data) \
|
|
||||||
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/set/detail/as_set.hpp>
|
|
||||||
#define BOOST_PP_ITERATION_LIMITS (1, FUSION_MAX_SET_SIZE)
|
|
||||||
#include BOOST_PP_ITERATE()
|
|
||||||
|
|
||||||
#undef BOOST_FUSION_NEXT_ITERATOR
|
|
||||||
#undef BOOST_FUSION_NEXT_CALL_ITERATOR
|
|
||||||
#undef BOOST_FUSION_VALUE_OF_ITERATOR
|
|
||||||
|
|
||||||
BOOST_FUSION_BARRIER_END
|
|
||||||
}}}
|
|
||||||
|
|
||||||
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
|
||||||
#pragma wave option(output: null)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
|
|
||||||
|
|
||||||
#endif
|
|
||||||
#else // defined(BOOST_PP_IS_ITERATING)
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Preprocessor vertical repetition code
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#define N BOOST_PP_ITERATION()
|
|
||||||
|
|
||||||
template <>
|
|
||||||
struct as_set<N>
|
|
||||||
{
|
|
||||||
template <typename I0>
|
|
||||||
struct apply
|
|
||||||
{
|
|
||||||
BOOST_PP_REPEAT(N, BOOST_FUSION_NEXT_ITERATOR, _)
|
|
||||||
BOOST_PP_REPEAT(N, BOOST_FUSION_VALUE_OF_ITERATOR, _)
|
|
||||||
typedef set<BOOST_PP_ENUM_PARAMS(N, T)> type;
|
|
||||||
};
|
|
||||||
|
|
||||||
template <typename Iterator>
|
|
||||||
BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
|
||||||
static typename apply<Iterator>::type
|
|
||||||
call(Iterator const& i0)
|
|
||||||
{
|
|
||||||
typedef apply<Iterator> gen;
|
|
||||||
typedef typename gen::type result;
|
|
||||||
BOOST_PP_REPEAT(BOOST_PP_DEC(N), BOOST_FUSION_NEXT_CALL_ITERATOR, _)
|
|
||||||
return result(BOOST_PP_ENUM_PARAMS(N, *i));
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
#undef N
|
|
||||||
#endif // defined(BOOST_PP_IS_ITERATING)
|
|
||||||
|
|
||||||
|
139
include/boost/fusion/container/set/detail/cpp03/as_set.hpp
Normal file
139
include/boost/fusion/container/set/detail/cpp03/as_set.hpp
Normal file
@ -0,0 +1,139 @@
|
|||||||
|
/*=============================================================================
|
||||||
|
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)
|
||||||
|
==============================================================================*/
|
||||||
|
#ifndef BOOST_PP_IS_ITERATING
|
||||||
|
#if !defined(FUSION_AS_SET_0932005_1341)
|
||||||
|
#define FUSION_AS_SET_0932005_1341
|
||||||
|
|
||||||
|
#include <boost/preprocessor/iterate.hpp>
|
||||||
|
#include <boost/preprocessor/repetition/enum_params.hpp>
|
||||||
|
#include <boost/preprocessor/repetition/enum_binary_params.hpp>
|
||||||
|
#include <boost/preprocessor/repetition/repeat.hpp>
|
||||||
|
#include <boost/preprocessor/cat.hpp>
|
||||||
|
#include <boost/preprocessor/inc.hpp>
|
||||||
|
#include <boost/preprocessor/dec.hpp>
|
||||||
|
#include <boost/fusion/container/set/set.hpp>
|
||||||
|
#include <boost/fusion/iterator/value_of.hpp>
|
||||||
|
#include <boost/fusion/iterator/deref.hpp>
|
||||||
|
#include <boost/fusion/iterator/next.hpp>
|
||||||
|
|
||||||
|
namespace boost { namespace fusion { namespace detail
|
||||||
|
{
|
||||||
|
BOOST_FUSION_BARRIER_BEGIN
|
||||||
|
|
||||||
|
template <int size>
|
||||||
|
struct as_set;
|
||||||
|
|
||||||
|
template <>
|
||||||
|
struct as_set<0>
|
||||||
|
{
|
||||||
|
template <typename Iterator>
|
||||||
|
struct apply
|
||||||
|
{
|
||||||
|
typedef set<> type;
|
||||||
|
};
|
||||||
|
|
||||||
|
template <typename Iterator>
|
||||||
|
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
||||||
|
static typename apply<Iterator>::type
|
||||||
|
call(Iterator)
|
||||||
|
{
|
||||||
|
return set<>();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
BOOST_FUSION_BARRIER_END
|
||||||
|
}}}
|
||||||
|
|
||||||
|
#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
|
||||||
|
#include <boost/fusion/container/set/detail/preprocessed/as_set.hpp>
|
||||||
|
#else
|
||||||
|
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
||||||
|
#pragma wave option(preserve: 2, line: 0, output: "preprocessed/as_set" FUSION_MAX_SET_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 { namespace detail
|
||||||
|
{
|
||||||
|
BOOST_FUSION_BARRIER_BEGIN
|
||||||
|
|
||||||
|
#define BOOST_FUSION_NEXT_ITERATOR(z, n, data) \
|
||||||
|
typedef typename fusion::result_of::next<BOOST_PP_CAT(I, n)>::type \
|
||||||
|
BOOST_PP_CAT(I, BOOST_PP_INC(n));
|
||||||
|
|
||||||
|
#define BOOST_FUSION_NEXT_CALL_ITERATOR(z, n, data) \
|
||||||
|
typename gen::BOOST_PP_CAT(I, BOOST_PP_INC(n)) \
|
||||||
|
BOOST_PP_CAT(i, BOOST_PP_INC(n)) = fusion::next(BOOST_PP_CAT(i, n));
|
||||||
|
|
||||||
|
#define BOOST_FUSION_VALUE_OF_ITERATOR(z, n, data) \
|
||||||
|
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/set/detail/as_set.hpp>
|
||||||
|
#define BOOST_PP_ITERATION_LIMITS (1, FUSION_MAX_SET_SIZE)
|
||||||
|
#include BOOST_PP_ITERATE()
|
||||||
|
|
||||||
|
#undef BOOST_FUSION_NEXT_ITERATOR
|
||||||
|
#undef BOOST_FUSION_NEXT_CALL_ITERATOR
|
||||||
|
#undef BOOST_FUSION_VALUE_OF_ITERATOR
|
||||||
|
|
||||||
|
BOOST_FUSION_BARRIER_END
|
||||||
|
}}}
|
||||||
|
|
||||||
|
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
||||||
|
#pragma wave option(output: null)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
|
||||||
|
|
||||||
|
#endif
|
||||||
|
#else // defined(BOOST_PP_IS_ITERATING)
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Preprocessor vertical repetition code
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#define N BOOST_PP_ITERATION()
|
||||||
|
|
||||||
|
template <>
|
||||||
|
struct as_set<N>
|
||||||
|
{
|
||||||
|
template <typename I0>
|
||||||
|
struct apply
|
||||||
|
{
|
||||||
|
BOOST_PP_REPEAT(N, BOOST_FUSION_NEXT_ITERATOR, _)
|
||||||
|
BOOST_PP_REPEAT(N, BOOST_FUSION_VALUE_OF_ITERATOR, _)
|
||||||
|
typedef set<BOOST_PP_ENUM_PARAMS(N, T)> type;
|
||||||
|
};
|
||||||
|
|
||||||
|
template <typename Iterator>
|
||||||
|
BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
||||||
|
static typename apply<Iterator>::type
|
||||||
|
call(Iterator const& i0)
|
||||||
|
{
|
||||||
|
typedef apply<Iterator> gen;
|
||||||
|
typedef typename gen::type result;
|
||||||
|
BOOST_PP_REPEAT(BOOST_PP_DEC(N), BOOST_FUSION_NEXT_CALL_ITERATOR, _)
|
||||||
|
return result(BOOST_PP_ENUM_PARAMS(N, *i));
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
#undef N
|
||||||
|
#endif // defined(BOOST_PP_IS_ITERATING)
|
||||||
|
|
28
include/boost/fusion/container/set/detail/cpp03/limits.hpp
Normal file
28
include/boost/fusion/container/set/detail/cpp03/limits.hpp
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
/*=============================================================================
|
||||||
|
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_SET_LIMITS_09162005_1103)
|
||||||
|
#define FUSION_SET_LIMITS_09162005_1103
|
||||||
|
|
||||||
|
#include <boost/fusion/support/config.hpp>
|
||||||
|
#include <boost/fusion/container/vector/limits.hpp>
|
||||||
|
|
||||||
|
#if !defined(FUSION_MAX_SET_SIZE)
|
||||||
|
# define FUSION_MAX_SET_SIZE FUSION_MAX_VECTOR_SIZE
|
||||||
|
#else
|
||||||
|
# if FUSION_MAX_SET_SIZE < 3
|
||||||
|
# undef FUSION_MAX_SET_SIZE
|
||||||
|
# if (FUSION_MAX_VECTOR_SIZE > 10)
|
||||||
|
# define FUSION_MAX_SET_SIZE 10
|
||||||
|
# else
|
||||||
|
# define FUSION_MAX_SET_SIZE FUSION_MAX_VECTOR_SIZE
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FUSION_MAX_SET_SIZE_STR BOOST_PP_STRINGIZE(BOOST_FUSION_PP_ROUND_UP(FUSION_MAX_SET_SIZE))
|
||||||
|
|
||||||
|
#endif
|
106
include/boost/fusion/container/set/detail/cpp03/set.hpp
Normal file
106
include/boost/fusion/container/set/detail/cpp03/set.hpp
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
/*=============================================================================
|
||||||
|
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_SET_09162005_1104)
|
||||||
|
#define FUSION_SET_09162005_1104
|
||||||
|
|
||||||
|
#include <boost/fusion/support/config.hpp>
|
||||||
|
#include <boost/fusion/support/is_sequence.hpp>
|
||||||
|
#include <boost/fusion/support/sequence_base.hpp>
|
||||||
|
#include <boost/fusion/support/category_of.hpp>
|
||||||
|
#include <boost/fusion/support/detail/access.hpp>
|
||||||
|
#include <boost/fusion/container/set/set_fwd.hpp>
|
||||||
|
#include <boost/fusion/container/set/detail/begin_impl.hpp>
|
||||||
|
#include <boost/fusion/container/set/detail/end_impl.hpp>
|
||||||
|
#include <boost/fusion/container/set/detail/value_of_impl.hpp>
|
||||||
|
#include <boost/fusion/container/set/detail/deref_data_impl.hpp>
|
||||||
|
#include <boost/fusion/container/set/detail/deref_impl.hpp>
|
||||||
|
#include <boost/fusion/container/set/detail/key_of_impl.hpp>
|
||||||
|
#include <boost/fusion/container/set/detail/value_of_data_impl.hpp>
|
||||||
|
#include <boost/fusion/container/vector/vector.hpp>
|
||||||
|
#include <boost/mpl/identity.hpp>
|
||||||
|
#include <boost/mpl/bool.hpp>
|
||||||
|
#include <boost/core/enable_if.hpp>
|
||||||
|
|
||||||
|
#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
|
||||||
|
#include <boost/fusion/container/set/detail/preprocessed/set.hpp>
|
||||||
|
#else
|
||||||
|
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
||||||
|
#pragma wave option(preserve: 2, line: 0, output: "detail/preprocessed/set" FUSION_MAX_SET_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_SET_SIZE, typename T)>
|
||||||
|
struct set : sequence_base<set<BOOST_PP_ENUM_PARAMS(FUSION_MAX_SET_SIZE, T)> >
|
||||||
|
{
|
||||||
|
struct category : forward_traversal_tag, associative_tag {};
|
||||||
|
|
||||||
|
typedef set_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_SET_SIZE, T)>
|
||||||
|
storage_type;
|
||||||
|
|
||||||
|
typedef typename storage_type::size size;
|
||||||
|
|
||||||
|
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
||||||
|
set()
|
||||||
|
: data() {}
|
||||||
|
|
||||||
|
template <typename Sequence>
|
||||||
|
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
||||||
|
set(Sequence const& rhs
|
||||||
|
, typename boost::enable_if<traits::is_sequence<Sequence> >::type* = 0)
|
||||||
|
: data(rhs) {}
|
||||||
|
|
||||||
|
#include <boost/fusion/container/set/detail/set_forward_ctor.hpp>
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
||||||
|
set&
|
||||||
|
operator=(T const& rhs)
|
||||||
|
{
|
||||||
|
data = rhs;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
||||||
|
storage_type& get_data() { return data; }
|
||||||
|
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
||||||
|
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
|
@ -0,0 +1,40 @@
|
|||||||
|
/*=============================================================================
|
||||||
|
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)
|
||||||
|
==============================================================================*/
|
||||||
|
#ifndef BOOST_PP_IS_ITERATING
|
||||||
|
#if !defined(FUSION_SET_FORWARD_CTOR_09162005_1115)
|
||||||
|
#define FUSION_SET_FORWARD_CTOR_09162005_1115
|
||||||
|
|
||||||
|
#include <boost/preprocessor/iterate.hpp>
|
||||||
|
#include <boost/preprocessor/repetition/enum_params.hpp>
|
||||||
|
#include <boost/preprocessor/repetition/enum_binary_params.hpp>
|
||||||
|
|
||||||
|
#define BOOST_PP_FILENAME_1 \
|
||||||
|
<boost/fusion/container/set/detail/set_forward_ctor.hpp>
|
||||||
|
#define BOOST_PP_ITERATION_LIMITS (1, FUSION_MAX_SET_SIZE)
|
||||||
|
#include BOOST_PP_ITERATE()
|
||||||
|
|
||||||
|
#endif
|
||||||
|
#else // defined(BOOST_PP_IS_ITERATING)
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Preprocessor vertical repetition code
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#define N BOOST_PP_ITERATION()
|
||||||
|
|
||||||
|
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
||||||
|
#if N == 1
|
||||||
|
explicit
|
||||||
|
#endif
|
||||||
|
set(BOOST_PP_ENUM_BINARY_PARAMS(
|
||||||
|
N, typename detail::call_param<T, >::type arg))
|
||||||
|
: data(BOOST_PP_ENUM_PARAMS(N, arg)) {}
|
||||||
|
|
||||||
|
#undef N
|
||||||
|
#endif // defined(BOOST_PP_IS_ITERATING)
|
||||||
|
|
53
include/boost/fusion/container/set/detail/cpp03/set_fwd.hpp
Normal file
53
include/boost/fusion/container/set/detail/cpp03/set_fwd.hpp
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
/*=============================================================================
|
||||||
|
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_SET_FORWARD_09162005_1102)
|
||||||
|
#define FUSION_SET_FORWARD_09162005_1102
|
||||||
|
|
||||||
|
#include <boost/fusion/support/config.hpp>
|
||||||
|
#include <boost/fusion/container/set/limits.hpp>
|
||||||
|
#include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
|
||||||
|
|
||||||
|
#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
|
||||||
|
#include <boost/fusion/container/set/detail/preprocessed/set_fwd.hpp>
|
||||||
|
#else
|
||||||
|
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
||||||
|
#pragma wave option(preserve: 2, line: 0, output: "detail/preprocessed/set" FUSION_MAX_SET_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 set_tag;
|
||||||
|
struct set_iterator_tag;
|
||||||
|
|
||||||
|
template <
|
||||||
|
BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(
|
||||||
|
FUSION_MAX_SET_SIZE, typename T, void_)
|
||||||
|
>
|
||||||
|
struct set;
|
||||||
|
}}
|
||||||
|
|
||||||
|
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
||||||
|
#pragma wave option(output: null)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
|
||||||
|
|
||||||
|
#endif
|
@ -1,40 +0,0 @@
|
|||||||
/*=============================================================================
|
|
||||||
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)
|
|
||||||
==============================================================================*/
|
|
||||||
#ifndef BOOST_PP_IS_ITERATING
|
|
||||||
#if !defined(FUSION_SET_FORWARD_CTOR_09162005_1115)
|
|
||||||
#define FUSION_SET_FORWARD_CTOR_09162005_1115
|
|
||||||
|
|
||||||
#include <boost/preprocessor/iterate.hpp>
|
|
||||||
#include <boost/preprocessor/repetition/enum_params.hpp>
|
|
||||||
#include <boost/preprocessor/repetition/enum_binary_params.hpp>
|
|
||||||
|
|
||||||
#define BOOST_PP_FILENAME_1 \
|
|
||||||
<boost/fusion/container/set/detail/set_forward_ctor.hpp>
|
|
||||||
#define BOOST_PP_ITERATION_LIMITS (1, FUSION_MAX_SET_SIZE)
|
|
||||||
#include BOOST_PP_ITERATE()
|
|
||||||
|
|
||||||
#endif
|
|
||||||
#else // defined(BOOST_PP_IS_ITERATING)
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Preprocessor vertical repetition code
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#define N BOOST_PP_ITERATION()
|
|
||||||
|
|
||||||
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
|
||||||
#if N == 1
|
|
||||||
explicit
|
|
||||||
#endif
|
|
||||||
set(BOOST_PP_ENUM_BINARY_PARAMS(
|
|
||||||
N, typename detail::call_param<T, >::type arg))
|
|
||||||
: data(BOOST_PP_ENUM_PARAMS(N, arg)) {}
|
|
||||||
|
|
||||||
#undef N
|
|
||||||
#endif // defined(BOOST_PP_IS_ITERATING)
|
|
||||||
|
|
||||||
|
@ -1,28 +0,0 @@
|
|||||||
/*=============================================================================
|
|
||||||
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_SET_LIMITS_09162005_1103)
|
|
||||||
#define FUSION_SET_LIMITS_09162005_1103
|
|
||||||
|
|
||||||
#include <boost/fusion/support/config.hpp>
|
|
||||||
#include <boost/fusion/container/vector/limits.hpp>
|
|
||||||
|
|
||||||
#if !defined(FUSION_MAX_SET_SIZE)
|
|
||||||
# define FUSION_MAX_SET_SIZE FUSION_MAX_VECTOR_SIZE
|
|
||||||
#else
|
|
||||||
# if FUSION_MAX_SET_SIZE < 3
|
|
||||||
# undef FUSION_MAX_SET_SIZE
|
|
||||||
# if (FUSION_MAX_VECTOR_SIZE > 10)
|
|
||||||
# define FUSION_MAX_SET_SIZE 10
|
|
||||||
# else
|
|
||||||
# define FUSION_MAX_SET_SIZE FUSION_MAX_VECTOR_SIZE
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define FUSION_MAX_SET_SIZE_STR BOOST_PP_STRINGIZE(BOOST_FUSION_PP_ROUND_UP(FUSION_MAX_SET_SIZE))
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
@ -1,106 +0,0 @@
|
|||||||
/*=============================================================================
|
|
||||||
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_SET_09162005_1104)
|
|
||||||
#define FUSION_SET_09162005_1104
|
|
||||||
|
|
||||||
#include <boost/fusion/support/config.hpp>
|
|
||||||
#include <boost/fusion/support/is_sequence.hpp>
|
|
||||||
#include <boost/fusion/support/sequence_base.hpp>
|
|
||||||
#include <boost/fusion/support/category_of.hpp>
|
|
||||||
#include <boost/fusion/support/detail/access.hpp>
|
|
||||||
#include <boost/fusion/container/set/set_fwd.hpp>
|
|
||||||
#include <boost/fusion/container/set/detail/begin_impl.hpp>
|
|
||||||
#include <boost/fusion/container/set/detail/end_impl.hpp>
|
|
||||||
#include <boost/fusion/container/set/detail/value_of_impl.hpp>
|
|
||||||
#include <boost/fusion/container/set/detail/deref_data_impl.hpp>
|
|
||||||
#include <boost/fusion/container/set/detail/deref_impl.hpp>
|
|
||||||
#include <boost/fusion/container/set/detail/key_of_impl.hpp>
|
|
||||||
#include <boost/fusion/container/set/detail/value_of_data_impl.hpp>
|
|
||||||
#include <boost/fusion/container/vector/vector.hpp>
|
|
||||||
#include <boost/mpl/identity.hpp>
|
|
||||||
#include <boost/mpl/bool.hpp>
|
|
||||||
#include <boost/core/enable_if.hpp>
|
|
||||||
|
|
||||||
#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
|
|
||||||
#include <boost/fusion/container/set/detail/preprocessed/set.hpp>
|
|
||||||
#else
|
|
||||||
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
|
||||||
#pragma wave option(preserve: 2, line: 0, output: "detail/preprocessed/set" FUSION_MAX_SET_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_SET_SIZE, typename T)>
|
|
||||||
struct set : sequence_base<set<BOOST_PP_ENUM_PARAMS(FUSION_MAX_SET_SIZE, T)> >
|
|
||||||
{
|
|
||||||
struct category : forward_traversal_tag, associative_tag {};
|
|
||||||
|
|
||||||
typedef set_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_SET_SIZE, T)>
|
|
||||||
storage_type;
|
|
||||||
|
|
||||||
typedef typename storage_type::size size;
|
|
||||||
|
|
||||||
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
|
||||||
set()
|
|
||||||
: data() {}
|
|
||||||
|
|
||||||
template <typename Sequence>
|
|
||||||
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
|
||||||
set(Sequence const& rhs
|
|
||||||
, typename boost::enable_if<traits::is_sequence<Sequence> >::type* = 0)
|
|
||||||
: data(rhs) {}
|
|
||||||
|
|
||||||
#include <boost/fusion/container/set/detail/set_forward_ctor.hpp>
|
|
||||||
|
|
||||||
template <typename T>
|
|
||||||
BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
|
||||||
set&
|
|
||||||
operator=(T const& rhs)
|
|
||||||
{
|
|
||||||
data = rhs;
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
|
||||||
storage_type& get_data() { return data; }
|
|
||||||
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
|
||||||
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
|
|
||||||
|
@ -1,53 +0,0 @@
|
|||||||
/*=============================================================================
|
|
||||||
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_SET_FORWARD_09162005_1102)
|
|
||||||
#define FUSION_SET_FORWARD_09162005_1102
|
|
||||||
|
|
||||||
#include <boost/fusion/support/config.hpp>
|
|
||||||
#include <boost/fusion/container/set/limits.hpp>
|
|
||||||
#include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
|
|
||||||
|
|
||||||
#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
|
|
||||||
#include <boost/fusion/container/set/detail/preprocessed/set_fwd.hpp>
|
|
||||||
#else
|
|
||||||
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
|
||||||
#pragma wave option(preserve: 2, line: 0, output: "detail/preprocessed/set" FUSION_MAX_SET_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 set_tag;
|
|
||||||
struct set_iterator_tag;
|
|
||||||
|
|
||||||
template <
|
|
||||||
BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(
|
|
||||||
FUSION_MAX_SET_SIZE, typename T, void_)
|
|
||||||
>
|
|
||||||
struct set;
|
|
||||||
}}
|
|
||||||
|
|
||||||
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
|
||||||
#pragma wave option(output: null)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
@ -1,139 +0,0 @@
|
|||||||
/*=============================================================================
|
|
||||||
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)
|
|
||||||
==============================================================================*/
|
|
||||||
#ifndef BOOST_PP_IS_ITERATING
|
|
||||||
#if !defined(FUSION_AS_VECTOR_09222005_0950)
|
|
||||||
#define FUSION_AS_VECTOR_09222005_0950
|
|
||||||
|
|
||||||
#include <boost/preprocessor/iterate.hpp>
|
|
||||||
#include <boost/preprocessor/repetition/enum_params.hpp>
|
|
||||||
#include <boost/preprocessor/repetition/enum_binary_params.hpp>
|
|
||||||
#include <boost/preprocessor/repetition/repeat.hpp>
|
|
||||||
#include <boost/preprocessor/cat.hpp>
|
|
||||||
#include <boost/preprocessor/inc.hpp>
|
|
||||||
#include <boost/preprocessor/dec.hpp>
|
|
||||||
#include <boost/fusion/container/vector/vector.hpp>
|
|
||||||
#include <boost/fusion/iterator/value_of.hpp>
|
|
||||||
#include <boost/fusion/iterator/deref.hpp>
|
|
||||||
#include <boost/fusion/iterator/next.hpp>
|
|
||||||
|
|
||||||
namespace boost { namespace fusion { namespace detail
|
|
||||||
{
|
|
||||||
BOOST_FUSION_BARRIER_BEGIN
|
|
||||||
|
|
||||||
template <int size>
|
|
||||||
struct as_vector;
|
|
||||||
|
|
||||||
template <>
|
|
||||||
struct as_vector<0>
|
|
||||||
{
|
|
||||||
template <typename Iterator>
|
|
||||||
struct apply
|
|
||||||
{
|
|
||||||
typedef vector0<> type;
|
|
||||||
};
|
|
||||||
|
|
||||||
template <typename Iterator>
|
|
||||||
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
|
||||||
static typename apply<Iterator>::type
|
|
||||||
call(Iterator)
|
|
||||||
{
|
|
||||||
return vector0<>();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
BOOST_FUSION_BARRIER_END
|
|
||||||
}}}
|
|
||||||
|
|
||||||
#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
|
|
||||||
#include <boost/fusion/container/vector/detail/preprocessed/as_vector.hpp>
|
|
||||||
#else
|
|
||||||
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
|
||||||
#pragma wave option(preserve: 2, line: 0, output: "preprocessed/as_vector" FUSION_MAX_VECTOR_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 { namespace detail
|
|
||||||
{
|
|
||||||
BOOST_FUSION_BARRIER_BEGIN
|
|
||||||
|
|
||||||
#define BOOST_FUSION_NEXT_ITERATOR(z, n, data) \
|
|
||||||
typedef typename fusion::result_of::next<BOOST_PP_CAT(I, n)>::type \
|
|
||||||
BOOST_PP_CAT(I, BOOST_PP_INC(n));
|
|
||||||
|
|
||||||
#define BOOST_FUSION_NEXT_CALL_ITERATOR(z, n, data) \
|
|
||||||
typename gen::BOOST_PP_CAT(I, BOOST_PP_INC(n)) \
|
|
||||||
BOOST_PP_CAT(i, BOOST_PP_INC(n)) = fusion::next(BOOST_PP_CAT(i, n));
|
|
||||||
|
|
||||||
#define BOOST_FUSION_VALUE_OF_ITERATOR(z, n, data) \
|
|
||||||
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/vector/detail/as_vector.hpp>
|
|
||||||
#define BOOST_PP_ITERATION_LIMITS (1, FUSION_MAX_VECTOR_SIZE)
|
|
||||||
#include BOOST_PP_ITERATE()
|
|
||||||
|
|
||||||
#undef BOOST_FUSION_NEXT_ITERATOR
|
|
||||||
#undef BOOST_FUSION_NEXT_CALL_ITERATOR
|
|
||||||
#undef BOOST_FUSION_VALUE_OF_ITERATOR
|
|
||||||
|
|
||||||
BOOST_FUSION_BARRIER_END
|
|
||||||
}}}
|
|
||||||
|
|
||||||
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
|
||||||
#pragma wave option(output: null)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
|
|
||||||
|
|
||||||
#endif
|
|
||||||
#else // defined(BOOST_PP_IS_ITERATING)
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Preprocessor vertical repetition code
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#define N BOOST_PP_ITERATION()
|
|
||||||
|
|
||||||
template <>
|
|
||||||
struct as_vector<N>
|
|
||||||
{
|
|
||||||
template <typename I0>
|
|
||||||
struct apply
|
|
||||||
{
|
|
||||||
BOOST_PP_REPEAT(N, BOOST_FUSION_NEXT_ITERATOR, _)
|
|
||||||
BOOST_PP_REPEAT(N, BOOST_FUSION_VALUE_OF_ITERATOR, _)
|
|
||||||
typedef BOOST_PP_CAT(vector, N)<BOOST_PP_ENUM_PARAMS(N, T)> type;
|
|
||||||
};
|
|
||||||
|
|
||||||
template <typename Iterator>
|
|
||||||
BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
|
||||||
static typename apply<Iterator>::type
|
|
||||||
call(Iterator const& i0)
|
|
||||||
{
|
|
||||||
typedef apply<Iterator> gen;
|
|
||||||
typedef typename gen::type result;
|
|
||||||
BOOST_PP_REPEAT(BOOST_PP_DEC(N), BOOST_FUSION_NEXT_CALL_ITERATOR, _)
|
|
||||||
return result(BOOST_PP_ENUM_PARAMS(N, *i));
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
#undef N
|
|
||||||
#endif // defined(BOOST_PP_IS_ITERATING)
|
|
||||||
|
|
||||||
|
139
include/boost/fusion/container/vector/detail/cpp03/as_vector.hpp
Normal file
139
include/boost/fusion/container/vector/detail/cpp03/as_vector.hpp
Normal file
@ -0,0 +1,139 @@
|
|||||||
|
/*=============================================================================
|
||||||
|
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)
|
||||||
|
==============================================================================*/
|
||||||
|
#ifndef BOOST_PP_IS_ITERATING
|
||||||
|
#if !defined(FUSION_AS_VECTOR_09222005_0950)
|
||||||
|
#define FUSION_AS_VECTOR_09222005_0950
|
||||||
|
|
||||||
|
#include <boost/preprocessor/iterate.hpp>
|
||||||
|
#include <boost/preprocessor/repetition/enum_params.hpp>
|
||||||
|
#include <boost/preprocessor/repetition/enum_binary_params.hpp>
|
||||||
|
#include <boost/preprocessor/repetition/repeat.hpp>
|
||||||
|
#include <boost/preprocessor/cat.hpp>
|
||||||
|
#include <boost/preprocessor/inc.hpp>
|
||||||
|
#include <boost/preprocessor/dec.hpp>
|
||||||
|
#include <boost/fusion/container/vector/vector.hpp>
|
||||||
|
#include <boost/fusion/iterator/value_of.hpp>
|
||||||
|
#include <boost/fusion/iterator/deref.hpp>
|
||||||
|
#include <boost/fusion/iterator/next.hpp>
|
||||||
|
|
||||||
|
namespace boost { namespace fusion { namespace detail
|
||||||
|
{
|
||||||
|
BOOST_FUSION_BARRIER_BEGIN
|
||||||
|
|
||||||
|
template <int size>
|
||||||
|
struct as_vector;
|
||||||
|
|
||||||
|
template <>
|
||||||
|
struct as_vector<0>
|
||||||
|
{
|
||||||
|
template <typename Iterator>
|
||||||
|
struct apply
|
||||||
|
{
|
||||||
|
typedef vector0<> type;
|
||||||
|
};
|
||||||
|
|
||||||
|
template <typename Iterator>
|
||||||
|
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
||||||
|
static typename apply<Iterator>::type
|
||||||
|
call(Iterator)
|
||||||
|
{
|
||||||
|
return vector0<>();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
BOOST_FUSION_BARRIER_END
|
||||||
|
}}}
|
||||||
|
|
||||||
|
#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
|
||||||
|
#include <boost/fusion/container/vector/detail/preprocessed/as_vector.hpp>
|
||||||
|
#else
|
||||||
|
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
||||||
|
#pragma wave option(preserve: 2, line: 0, output: "preprocessed/as_vector" FUSION_MAX_VECTOR_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 { namespace detail
|
||||||
|
{
|
||||||
|
BOOST_FUSION_BARRIER_BEGIN
|
||||||
|
|
||||||
|
#define BOOST_FUSION_NEXT_ITERATOR(z, n, data) \
|
||||||
|
typedef typename fusion::result_of::next<BOOST_PP_CAT(I, n)>::type \
|
||||||
|
BOOST_PP_CAT(I, BOOST_PP_INC(n));
|
||||||
|
|
||||||
|
#define BOOST_FUSION_NEXT_CALL_ITERATOR(z, n, data) \
|
||||||
|
typename gen::BOOST_PP_CAT(I, BOOST_PP_INC(n)) \
|
||||||
|
BOOST_PP_CAT(i, BOOST_PP_INC(n)) = fusion::next(BOOST_PP_CAT(i, n));
|
||||||
|
|
||||||
|
#define BOOST_FUSION_VALUE_OF_ITERATOR(z, n, data) \
|
||||||
|
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/vector/detail/as_vector.hpp>
|
||||||
|
#define BOOST_PP_ITERATION_LIMITS (1, FUSION_MAX_VECTOR_SIZE)
|
||||||
|
#include BOOST_PP_ITERATE()
|
||||||
|
|
||||||
|
#undef BOOST_FUSION_NEXT_ITERATOR
|
||||||
|
#undef BOOST_FUSION_NEXT_CALL_ITERATOR
|
||||||
|
#undef BOOST_FUSION_VALUE_OF_ITERATOR
|
||||||
|
|
||||||
|
BOOST_FUSION_BARRIER_END
|
||||||
|
}}}
|
||||||
|
|
||||||
|
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
||||||
|
#pragma wave option(output: null)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
|
||||||
|
|
||||||
|
#endif
|
||||||
|
#else // defined(BOOST_PP_IS_ITERATING)
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Preprocessor vertical repetition code
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#define N BOOST_PP_ITERATION()
|
||||||
|
|
||||||
|
template <>
|
||||||
|
struct as_vector<N>
|
||||||
|
{
|
||||||
|
template <typename I0>
|
||||||
|
struct apply
|
||||||
|
{
|
||||||
|
BOOST_PP_REPEAT(N, BOOST_FUSION_NEXT_ITERATOR, _)
|
||||||
|
BOOST_PP_REPEAT(N, BOOST_FUSION_VALUE_OF_ITERATOR, _)
|
||||||
|
typedef BOOST_PP_CAT(vector, N)<BOOST_PP_ENUM_PARAMS(N, T)> type;
|
||||||
|
};
|
||||||
|
|
||||||
|
template <typename Iterator>
|
||||||
|
BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
||||||
|
static typename apply<Iterator>::type
|
||||||
|
call(Iterator const& i0)
|
||||||
|
{
|
||||||
|
typedef apply<Iterator> gen;
|
||||||
|
typedef typename gen::type result;
|
||||||
|
BOOST_PP_REPEAT(BOOST_PP_DEC(N), BOOST_FUSION_NEXT_CALL_ITERATOR, _)
|
||||||
|
return result(BOOST_PP_ENUM_PARAMS(N, *i));
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
#undef N
|
||||||
|
#endif // defined(BOOST_PP_IS_ITERATING)
|
||||||
|
|
@ -0,0 +1,24 @@
|
|||||||
|
/*=============================================================================
|
||||||
|
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_VECTOR_LIMITS_07072005_1246)
|
||||||
|
#define FUSION_VECTOR_LIMITS_07072005_1246
|
||||||
|
|
||||||
|
#include <boost/fusion/support/config.hpp>
|
||||||
|
#include <boost/fusion/support/detail/pp_round.hpp>
|
||||||
|
|
||||||
|
#if !defined(FUSION_MAX_VECTOR_SIZE)
|
||||||
|
# define FUSION_MAX_VECTOR_SIZE 10
|
||||||
|
#else
|
||||||
|
# if FUSION_MAX_VECTOR_SIZE < 3
|
||||||
|
# undef FUSION_MAX_VECTOR_SIZE
|
||||||
|
# define FUSION_MAX_VECTOR_SIZE 10
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FUSION_MAX_VECTOR_SIZE_STR BOOST_PP_STRINGIZE(BOOST_FUSION_PP_ROUND_UP(FUSION_MAX_VECTOR_SIZE))
|
||||||
|
|
||||||
|
#endif
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user