mirror of
https://github.com/boostorg/mpl.git
synced 2026-08-04 04:34:09 +02:00
Compare commits
10 Commits
develop
...
boost-1.31.0
| Author | SHA1 | Date | |
|---|---|---|---|
| 60dc0fbfa6 | |||
| 5e3267bf29 | |||
| f8d40123af | |||
| 232a2f9048 | |||
| 9e8baa64f1 | |||
| d2a29ae36b | |||
| 52a0676691 | |||
| 3f839a6698 | |||
| 584e2797cb | |||
| 9b4e6c74d5 |
@@ -252,7 +252,7 @@ struct BOOST_PP_CAT(apply,i)
|
||||
// Metafunction forwarding confuses vc7
|
||||
typedef typename F::template apply<
|
||||
AUX_APPLY_N_PARAMS(i, T)
|
||||
>::type
|
||||
>::type type;
|
||||
|
||||
BOOST_MPL_AUX_LAMBDA_SUPPORT(
|
||||
BOOST_PP_INC(i)
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
#elif defined(BOOST_MSVC) && BOOST_MSVC == 1300
|
||||
# define BOOST_MPL_COMPILER_DIR msvc70
|
||||
|
||||
#elif defined(__GNUC__)
|
||||
#elif defined(__GNUC__) && !defined(__EDG_VERSION__)
|
||||
# define BOOST_MPL_COMPILER_DIR gcc
|
||||
|
||||
#elif defined(__BORLANDC__)
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
#if !defined(BOOST_NO_DEPENDENT_NON_TYPE_PARAMETER_IN_PARTIAL_SPECIALIZATION) \
|
||||
&& !defined(BOOST_MPL_PREPROCESSING_MODE) \
|
||||
&& ( defined(__EDG__) && (__EDG_VERSION__ <= 300 || !defined(BOOST_STRICT_CONFIG)) \
|
||||
|| defined(__GNUC__) && (__GNUC__ < 3 || __GNUC__ == 3 && __GNUC_MINOR__ <= 2 \
|
||||
|| defined(__GNUC__) && !defined(__EDG_VERSION__) && (__GNUC__ < 3 || __GNUC__ == 3 && __GNUC_MINOR__ <= 2 \
|
||||
|| !defined(BOOST_STRICT_CONFIG)) \
|
||||
)
|
||||
|
||||
|
||||
@@ -2,26 +2,25 @@
|
||||
#ifndef BOOST_MPL_AUX_CONFIG_PREPROCESSOR_HPP_INCLUDED
|
||||
#define BOOST_MPL_AUX_CONFIG_PREPROCESSOR_HPP_INCLUDED
|
||||
|
||||
// + file: boost/mpl/aux_/config/preprocessor.hpp
|
||||
// + last modified: 02/sep/03
|
||||
|
||||
// Copyright (C) 2000-03 Aleksey Gurtovoy
|
||||
// Copyright (c) 2000-04 Aleksey Gurtovoy
|
||||
//
|
||||
// Permission to use, copy, modify, distribute and sell this software
|
||||
// and its documentation for any purpose is hereby granted without fee,
|
||||
// provided that the above copyright notice appears in all copies and
|
||||
// that both the copyright notice and this permission notice appear in
|
||||
// supporting documentation. No representations are made about the
|
||||
// suitability of this software for any purpose. It is provided "as is"
|
||||
// without express or implied warranty.
|
||||
// Use, modification and distribution are subject to 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)
|
||||
//
|
||||
// See http://www.boost.org/libs/mpl for documentation.
|
||||
|
||||
// $Source$
|
||||
// $Date$
|
||||
// $Revision$
|
||||
|
||||
#include "boost/mpl/aux_/config/workaround.hpp"
|
||||
|
||||
#if BOOST_WORKAROUND(__MWERKS__, <= 0x3003) \
|
||||
|| BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x561)) \
|
||||
|| BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(502))
|
||||
#if !defined(BOOST_MPL_BROKEN_PP_MACRO_EXPANSION) \
|
||||
&& ( BOOST_WORKAROUND(__MWERKS__, <= 0x3003) \
|
||||
|| BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x561)) \
|
||||
|| BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(502)) \
|
||||
)
|
||||
|
||||
# define BOOST_MPL_BROKEN_PP_MACRO_EXPANSION
|
||||
|
||||
@@ -29,4 +28,11 @@
|
||||
|
||||
//#define BOOST_MPL_NO_OWN_PP_PRIMITIVES
|
||||
|
||||
#if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING) \
|
||||
&& BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x833))
|
||||
|
||||
# define BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING
|
||||
|
||||
#endif
|
||||
|
||||
#endif // BOOST_MPL_AUX_CONFIG_PREPROCESSOR_HPP_INCLUDED
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
|
||||
#if !defined(BOOST_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) \
|
||||
&& !defined(BOOST_MPL_PREPROCESSING_MODE) \
|
||||
&& ( defined(__GNUC__) && (__GNUC__ < 3 || __GNUC__ == 3 && __GNUC_MINOR__ <= 2 \
|
||||
&& ( defined(__GNUC__) && !defined(__EDG_VERSION__) && (__GNUC__ < 3 || __GNUC__ == 3 && __GNUC_MINOR__ <= 2 \
|
||||
|| !defined(BOOST_STRICT_CONFIG)) \
|
||||
|| defined(__BORLANDC__) && (__BORLANDC__ <= 0x561 || !defined(BOOST_STRICT_CONFIG)) \
|
||||
)
|
||||
|
||||
@@ -31,6 +31,8 @@
|
||||
// the implementation below is based on a USENET newsgroup's posting by
|
||||
// Rani Sharoni (comp.lang.c++.moderated, 2002-03-17 07:45:09 PST)
|
||||
|
||||
# if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1400))
|
||||
|
||||
# define BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(trait, name, unused) \
|
||||
template< typename T > \
|
||||
boost::mpl::aux::yes_tag \
|
||||
@@ -53,6 +55,37 @@ struct trait \
|
||||
}; \
|
||||
/**/
|
||||
|
||||
# else // conforming compilers
|
||||
|
||||
# define BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(trait, name, unused) \
|
||||
template< typename T > \
|
||||
struct trait \
|
||||
{ \
|
||||
struct helpers \
|
||||
{ \
|
||||
template< typename U > \
|
||||
static boost::mpl::aux::yes_tag \
|
||||
test( \
|
||||
boost::mpl::aux::type_wrapper<U> const volatile* \
|
||||
, boost::mpl::aux::type_wrapper<BOOST_MSVC_TYPENAME U::name>* = 0 \
|
||||
); \
|
||||
\
|
||||
static boost::mpl::aux::no_tag \
|
||||
test(...); \
|
||||
}; \
|
||||
\
|
||||
typedef boost::mpl::aux::type_wrapper<T> t_; \
|
||||
\
|
||||
BOOST_STATIC_CONSTANT( \
|
||||
bool, value = \
|
||||
sizeof(helpers::test(static_cast<t_*>(0))) \
|
||||
== sizeof(boost::mpl::aux::yes_tag) \
|
||||
); \
|
||||
}; \
|
||||
/**/
|
||||
|
||||
# endif
|
||||
|
||||
# else
|
||||
|
||||
# include "boost/mpl/if.hpp"
|
||||
|
||||
@@ -1,30 +1,34 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// boost mpl/aux_/include_preprocessed.hpp header file
|
||||
// See http://www.boost.org for updates, documentation, and revision history.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
// Copyright (c) 2001-04 Aleksey Gurtovoy
|
||||
//
|
||||
// Copyright (c) 2001-02
|
||||
// Aleksey Gurtovoy
|
||||
// Use, modification and distribution are subject to 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)
|
||||
//
|
||||
// Permission to use, copy, modify, distribute and sell this software
|
||||
// and its documentation for any purpose is hereby granted without fee,
|
||||
// provided that the above copyright notice appears in all copies and
|
||||
// that both the copyright notice and this permission notice appear in
|
||||
// supporting documentation. No representations are made about the
|
||||
// suitability of this software for any purpose. It is provided "as is"
|
||||
// without express or implied warranty.
|
||||
// See http://www.boost.org/libs/mpl for documentation.
|
||||
|
||||
// $Source$
|
||||
// $Date$
|
||||
// $Revision$
|
||||
|
||||
// no include guards, the header is intended for multiple inclusion!
|
||||
|
||||
#include "boost/mpl/aux_/config/compiler.hpp"
|
||||
#include "boost/mpl/aux_/config/preprocessor.hpp"
|
||||
#include "boost/preprocessor/cat.hpp"
|
||||
#include "boost/preprocessor/stringize.hpp"
|
||||
|
||||
#if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING)
|
||||
# define AUX_PREPROCESSED_HEADER \
|
||||
aux_/preprocessed/BOOST_MPL_COMPILER_DIR/BOOST_MPL_PREPROCESSED_HEADER \
|
||||
BOOST_MPL_COMPILER_DIR/BOOST_MPL_PREPROCESSED_HEADER \
|
||||
/**/
|
||||
#else
|
||||
# define AUX_PREPROCESSED_HEADER \
|
||||
BOOST_PP_CAT(BOOST_MPL_COMPILER_DIR,/)##BOOST_MPL_PREPROCESSED_HEADER \
|
||||
/**/
|
||||
#endif
|
||||
|
||||
# include BOOST_PP_STRINGIZE(boost/mpl/AUX_PREPROCESSED_HEADER)
|
||||
# include BOOST_PP_STRINGIZE(boost/mpl/aux_/preprocessed/AUX_PREPROCESSED_HEADER)
|
||||
# undef AUX_PREPROCESSED_HEADER
|
||||
|
||||
#undef BOOST_MPL_PREPROCESSED_HEADER
|
||||
|
||||
@@ -2,22 +2,18 @@
|
||||
#ifndef BOOST_MPL_EQUAL_TO_HPP_INCLUDED
|
||||
#define BOOST_MPL_EQUAL_TO_HPP_INCLUDED
|
||||
|
||||
// + file: boost/mpl/equal_to.hpp
|
||||
// + last modified: 25/feb/03
|
||||
|
||||
// Copyright (c) 2000-03
|
||||
// Aleksey Gurtovoy
|
||||
// Copyright (c) 2000-03 Aleksey Gurtovoy
|
||||
//
|
||||
// Permission to use, copy, modify, distribute and sell this software
|
||||
// and its documentation for any purpose is hereby granted without fee,
|
||||
// provided that the above copyright notice appears in all copies and
|
||||
// that both the copyright notice and this permission notice appear in
|
||||
// supporting documentation. No representations are made about the
|
||||
// suitability of this software for any purpose. It is provided "as is"
|
||||
// without express or implied warranty.
|
||||
// Use, modification and distribution are subject to 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)
|
||||
//
|
||||
// See http://www.boost.org/libs/mpl for documentation.
|
||||
|
||||
// $Source$
|
||||
// $Date$
|
||||
// $Revision$
|
||||
|
||||
#include "boost/mpl/bool.hpp"
|
||||
#include "boost/mpl/integral_c.hpp"
|
||||
#include "boost/mpl/aux_/value_wknd.hpp"
|
||||
@@ -34,10 +30,13 @@ template<
|
||||
>
|
||||
struct equal_to
|
||||
{
|
||||
BOOST_STATIC_CONSTANT(bool, value = (
|
||||
BOOST_MPL_AUX_VALUE_WKND(T1)::value
|
||||
== BOOST_MPL_AUX_VALUE_WKND(T2)::value
|
||||
));
|
||||
enum
|
||||
{
|
||||
msvc71_wknd_ = ( BOOST_MPL_AUX_VALUE_WKND(T1)::value
|
||||
== BOOST_MPL_AUX_VALUE_WKND(T2)::value )
|
||||
};
|
||||
|
||||
BOOST_STATIC_CONSTANT(bool, value = msvc71_wknd_);
|
||||
|
||||
#if !defined(__BORLANDC__)
|
||||
typedef bool_<value> type;
|
||||
|
||||
@@ -2,22 +2,18 @@
|
||||
#ifndef BOOST_MPL_GREATER_HPP_INCLUDED
|
||||
#define BOOST_MPL_GREATER_HPP_INCLUDED
|
||||
|
||||
// + file: boost/mpl/greater.hpp
|
||||
// + last modified: 25/feb/03
|
||||
|
||||
// Copyright (c) 2000-03
|
||||
// Aleksey Gurtovoy
|
||||
// Copyright (c) 2000-03 Aleksey Gurtovoy
|
||||
//
|
||||
// Permission to use, copy, modify, distribute and sell this software
|
||||
// and its documentation for any purpose is hereby granted without fee,
|
||||
// provided that the above copyright notice appears in all copies and
|
||||
// that both the copyright notice and this permission notice appear in
|
||||
// supporting documentation. No representations are made about the
|
||||
// suitability of this software for any purpose. It is provided "as is"
|
||||
// without express or implied warranty.
|
||||
// Use, modification and distribution are subject to 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)
|
||||
//
|
||||
// See http://www.boost.org/libs/mpl for documentation.
|
||||
|
||||
// $Source$
|
||||
// $Date$
|
||||
// $Revision$
|
||||
|
||||
#include "boost/mpl/bool.hpp"
|
||||
#include "boost/mpl/integral_c.hpp"
|
||||
#include "boost/mpl/aux_/value_wknd.hpp"
|
||||
@@ -34,10 +30,13 @@ template<
|
||||
>
|
||||
struct greater
|
||||
{
|
||||
BOOST_STATIC_CONSTANT(bool, value = (
|
||||
(BOOST_MPL_AUX_VALUE_WKND(T1)::value)
|
||||
> (BOOST_MPL_AUX_VALUE_WKND(T2)::value)
|
||||
));
|
||||
enum
|
||||
{
|
||||
msvc71_wknd_ = ( BOOST_MPL_AUX_VALUE_WKND(T1)::value
|
||||
> BOOST_MPL_AUX_VALUE_WKND(T2)::value )
|
||||
};
|
||||
|
||||
BOOST_STATIC_CONSTANT(bool, value = msvc71_wknd_);
|
||||
|
||||
#if !defined(__BORLANDC__)
|
||||
typedef bool_<value> type;
|
||||
|
||||
@@ -2,22 +2,18 @@
|
||||
#ifndef BOOST_MPL_GREATER_EQUAL_HPP_INCLUDED
|
||||
#define BOOST_MPL_GREATER_EQUAL_HPP_INCLUDED
|
||||
|
||||
// + file: boost/mpl/greater_equal.hpp
|
||||
// + last modified: 25/feb/03
|
||||
|
||||
// Copyright (c) 2000-03
|
||||
// Aleksey Gurtovoy
|
||||
// Copyright (c) 2000-03 Aleksey Gurtovoy
|
||||
//
|
||||
// Permission to use, copy, modify, distribute and sell this software
|
||||
// and its documentation for any purpose is hereby granted without fee,
|
||||
// provided that the above copyright notice appears in all copies and
|
||||
// that both the copyright notice and this permission notice appear in
|
||||
// supporting documentation. No representations are made about the
|
||||
// suitability of this software for any purpose. It is provided "as is"
|
||||
// without express or implied warranty.
|
||||
// Use, modification and distribution are subject to 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)
|
||||
//
|
||||
// See http://www.boost.org/libs/mpl for documentation.
|
||||
|
||||
// $Source$
|
||||
// $Date$
|
||||
// $Revision$
|
||||
|
||||
#include "boost/mpl/bool.hpp"
|
||||
#include "boost/mpl/integral_c.hpp"
|
||||
#include "boost/mpl/aux_/value_wknd.hpp"
|
||||
@@ -34,10 +30,13 @@ template<
|
||||
>
|
||||
struct greater_equal
|
||||
{
|
||||
BOOST_STATIC_CONSTANT(bool, value = (
|
||||
BOOST_MPL_AUX_VALUE_WKND(T1)::value
|
||||
>= BOOST_MPL_AUX_VALUE_WKND(T2)::value
|
||||
));
|
||||
enum
|
||||
{
|
||||
msvc71_wknd_ = ( BOOST_MPL_AUX_VALUE_WKND(T1)::value
|
||||
>= BOOST_MPL_AUX_VALUE_WKND(T2)::value )
|
||||
};
|
||||
|
||||
BOOST_STATIC_CONSTANT(bool, value = msvc71_wknd_);
|
||||
|
||||
#if !defined(__BORLANDC__)
|
||||
typedef bool_<value> type;
|
||||
|
||||
+15
-16
@@ -2,22 +2,18 @@
|
||||
#ifndef BOOST_MPL_LESS_HPP_INCLUDED
|
||||
#define BOOST_MPL_LESS_HPP_INCLUDED
|
||||
|
||||
// + file: boost/mpl/less.hpp
|
||||
// + last modified: 25/feb/03
|
||||
|
||||
// Copyright (c) 2000-03
|
||||
// Aleksey Gurtovoy
|
||||
// Copyright (c) 2000-03 Aleksey Gurtovoy
|
||||
//
|
||||
// Permission to use, copy, modify, distribute and sell this software
|
||||
// and its documentation for any purpose is hereby granted without fee,
|
||||
// provided that the above copyright notice appears in all copies and
|
||||
// that both the copyright notice and this permission notice appear in
|
||||
// supporting documentation. No representations are made about the
|
||||
// suitability of this software for any purpose. It is provided "as is"
|
||||
// without express or implied warranty.
|
||||
// Use, modification and distribution are subject to 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)
|
||||
//
|
||||
// See http://www.boost.org/libs/mpl for documentation.
|
||||
|
||||
// $Source$
|
||||
// $Date$
|
||||
// $Revision$
|
||||
|
||||
#include "boost/mpl/bool.hpp"
|
||||
#include "boost/mpl/integral_c.hpp"
|
||||
#include "boost/mpl/aux_/value_wknd.hpp"
|
||||
@@ -34,10 +30,13 @@ template<
|
||||
>
|
||||
struct less
|
||||
{
|
||||
BOOST_STATIC_CONSTANT(bool, value = (
|
||||
(BOOST_MPL_AUX_VALUE_WKND(T1)::value)
|
||||
< (BOOST_MPL_AUX_VALUE_WKND(T2)::value)
|
||||
));
|
||||
enum
|
||||
{
|
||||
msvc71_wknd_ = ( BOOST_MPL_AUX_VALUE_WKND(T1)::value
|
||||
< BOOST_MPL_AUX_VALUE_WKND(T2)::value )
|
||||
};
|
||||
|
||||
BOOST_STATIC_CONSTANT(bool, value = msvc71_wknd_);
|
||||
|
||||
#if !defined(__BORLANDC__)
|
||||
typedef bool_<value> type;
|
||||
|
||||
@@ -2,22 +2,18 @@
|
||||
#ifndef BOOST_MPL_LESS_EQUAL_HPP_INCLUDED
|
||||
#define BOOST_MPL_LESS_EQUAL_HPP_INCLUDED
|
||||
|
||||
// + file: boost/mpl/less_equal.hpp
|
||||
// + last modified: 25/feb/03
|
||||
|
||||
// Copyright (c) 2000-03
|
||||
// Aleksey Gurtovoy
|
||||
// Copyright (c) 2000-03 Aleksey Gurtovoy
|
||||
//
|
||||
// Permission to use, copy, modify, distribute and sell this software
|
||||
// and its documentation for any purpose is hereby granted without fee,
|
||||
// provided that the above copyright notice appears in all copies and
|
||||
// that both the copyright notice and this permission notice appear in
|
||||
// supporting documentation. No representations are made about the
|
||||
// suitability of this software for any purpose. It is provided "as is"
|
||||
// without express or implied warranty.
|
||||
// Use, modification and distribution are subject to 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)
|
||||
//
|
||||
// See http://www.boost.org/libs/mpl for documentation.
|
||||
|
||||
// $Source$
|
||||
// $Date$
|
||||
// $Revision$
|
||||
|
||||
#include "boost/mpl/bool.hpp"
|
||||
#include "boost/mpl/integral_c.hpp"
|
||||
#include "boost/mpl/aux_/value_wknd.hpp"
|
||||
@@ -34,10 +30,13 @@ template<
|
||||
>
|
||||
struct less_equal
|
||||
{
|
||||
BOOST_STATIC_CONSTANT(bool, value = (
|
||||
BOOST_MPL_AUX_VALUE_WKND(T1)::value
|
||||
<= BOOST_MPL_AUX_VALUE_WKND(T2)::value
|
||||
));
|
||||
enum
|
||||
{
|
||||
msvc71_wknd_ = ( BOOST_MPL_AUX_VALUE_WKND(T1)::value
|
||||
<= BOOST_MPL_AUX_VALUE_WKND(T2)::value )
|
||||
};
|
||||
|
||||
BOOST_STATIC_CONSTANT(bool, value = msvc71_wknd_);
|
||||
|
||||
#if !defined(__BORLANDC__)
|
||||
typedef bool_<value> type;
|
||||
|
||||
+23
-17
@@ -1,18 +1,3 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// boost mpl/list.hpp header file
|
||||
// See http://www.boost.org for updates, documentation, and revision history.
|
||||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// Copyright (c) 2000-02
|
||||
// Aleksey Gurtovoy
|
||||
//
|
||||
// Permission to use, copy, modify, distribute and sell this software
|
||||
// and its documentation for any purpose is hereby granted without fee,
|
||||
// provided that the above copyright notice appears in all copies and
|
||||
// that both the copyright notice and this permission notice appear in
|
||||
// supporting documentation. No representations are made about the
|
||||
// suitability of this software for any purpose. It is provided "as is"
|
||||
// without express or implied warranty.
|
||||
|
||||
#if !defined(BOOST_PP_IS_ITERATING)
|
||||
|
||||
@@ -21,17 +6,38 @@
|
||||
#ifndef BOOST_MPL_LIST_HPP_INCLUDED
|
||||
#define BOOST_MPL_LIST_HPP_INCLUDED
|
||||
|
||||
// Copyright (c) 2000-04 Aleksey Gurtovoy
|
||||
//
|
||||
// Use, modification and distribution are subject to 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)
|
||||
//
|
||||
// See http://www.boost.org/libs/mpl for documentation.
|
||||
|
||||
// $Source$
|
||||
// $Date$
|
||||
// $Revision$
|
||||
|
||||
// no include guards, the header is intended for multiple inclusion!
|
||||
|
||||
#if !defined(BOOST_MPL_PREPROCESSING_MODE)
|
||||
# include "boost/mpl/limits/list.hpp"
|
||||
# include "boost/mpl/void.hpp"
|
||||
# include "boost/mpl/aux_/config/preprocessor.hpp"
|
||||
|
||||
# include "boost/preprocessor/inc.hpp"
|
||||
# include "boost/preprocessor/cat.hpp"
|
||||
# include "boost/preprocessor/stringize.hpp"
|
||||
|
||||
#if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING)
|
||||
# define MPL_AUX_LIST_HEADER \
|
||||
BOOST_PP_CAT(list,BOOST_MPL_LIMIT_LIST_SIZE).hpp \
|
||||
/**/
|
||||
#else
|
||||
# define MPL_AUX_LIST_HEADER \
|
||||
BOOST_PP_CAT(list,BOOST_MPL_LIMIT_LIST_SIZE)##.hpp \
|
||||
/**/
|
||||
#endif
|
||||
|
||||
# include BOOST_PP_STRINGIZE(boost/mpl/list/MPL_AUX_LIST_HEADER)
|
||||
# undef MPL_AUX_LIST_HEADER
|
||||
@@ -39,8 +45,8 @@
|
||||
|
||||
#include "boost/mpl/aux_/config/use_preprocessed.hpp"
|
||||
|
||||
#if !defined(BOOST_MPL_NO_PREPROCESSED_HEADERS) && \
|
||||
!defined(BOOST_MPL_PREPROCESSING_MODE)
|
||||
#if !defined(BOOST_MPL_NO_PREPROCESSED_HEADERS) \
|
||||
&& !defined(BOOST_MPL_PREPROCESSING_MODE)
|
||||
|
||||
# define BOOST_MPL_PREPROCESSED_HEADER list.hpp
|
||||
# include "boost/mpl/aux_/include_preprocessed.hpp"
|
||||
|
||||
@@ -1,18 +1,15 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// boost mpl/list/aux_/include_preprocessed.hpp header file
|
||||
// See http://www.boost.org for updates, documentation, and revision history.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
// Copyright (c) 2001-04 Aleksey Gurtovoy
|
||||
//
|
||||
// Copyright (c) 2001-02
|
||||
// Aleksey Gurtovoy
|
||||
// Use, modification and distribution are subject to 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)
|
||||
//
|
||||
// Permission to use, copy, modify, distribute and sell this software
|
||||
// and its documentation for any purpose is hereby granted without fee,
|
||||
// provided that the above copyright notice appears in all copies and
|
||||
// that both the copyright notice and this permission notice appear in
|
||||
// supporting documentation. No representations are made about the
|
||||
// suitability of this software for any purpose. It is provided "as is"
|
||||
// without express or implied warranty.
|
||||
// See http://www.boost.org/libs/mpl for documentation.
|
||||
|
||||
// $Source$
|
||||
// $Date$
|
||||
// $Revision$
|
||||
|
||||
// no include guards, the header is intended for multiple inclusion!
|
||||
|
||||
|
||||
@@ -1,18 +1,3 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// boost mpl/list_c.hpp header file
|
||||
// See http://www.boost.org for updates, documentation, and revision history.
|
||||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// Copyright (c) 2000-02
|
||||
// Aleksey Gurtovoy
|
||||
//
|
||||
// Permission to use, copy, modify, distribute and sell this software
|
||||
// and its documentation for any purpose is hereby granted without fee,
|
||||
// provided that the above copyright notice appears in all copies and
|
||||
// that both the copyright notice and this permission notice appear in
|
||||
// supporting documentation. No representations are made about the
|
||||
// suitability of this software for any purpose. It is provided "as is"
|
||||
// without express or implied warranty.
|
||||
|
||||
#if !defined(BOOST_PP_IS_ITERATING)
|
||||
|
||||
@@ -21,16 +6,37 @@
|
||||
#ifndef BOOST_MPL_LIST_C_HPP_INCLUDED
|
||||
#define BOOST_MPL_LIST_C_HPP_INCLUDED
|
||||
|
||||
// Copyright (c) 2000-04 Aleksey Gurtovoy
|
||||
//
|
||||
// Use, modification and distribution are subject to 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)
|
||||
//
|
||||
// See http://www.boost.org/libs/mpl for documentation.
|
||||
|
||||
// $Source$
|
||||
// $Date$
|
||||
// $Revision$
|
||||
|
||||
// no include guards, the header is intended for multiple inclusion!
|
||||
|
||||
#if !defined(BOOST_MPL_PREPROCESSING_MODE)
|
||||
# include "boost/mpl/limits/list.hpp"
|
||||
# include "boost/mpl/aux_/config/preprocessor.hpp"
|
||||
|
||||
# include "boost/preprocessor/inc.hpp"
|
||||
# include "boost/preprocessor/cat.hpp"
|
||||
# include "boost/preprocessor/stringize.hpp"
|
||||
|
||||
#if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING)
|
||||
# define MPL_AUX_LIST_HEADER \
|
||||
BOOST_PP_CAT(BOOST_PP_CAT(list,BOOST_MPL_LIMIT_LIST_SIZE), _c).hpp \
|
||||
/**/
|
||||
#else
|
||||
# define MPL_AUX_LIST_HEADER \
|
||||
BOOST_PP_CAT(BOOST_PP_CAT(list,BOOST_MPL_LIMIT_LIST_SIZE), _c)##.hpp \
|
||||
/**/
|
||||
#endif
|
||||
|
||||
# include BOOST_PP_STRINGIZE(boost/mpl/list/MPL_AUX_LIST_HEADER)
|
||||
# undef MPL_AUX_LIST_HEADER
|
||||
|
||||
@@ -2,22 +2,18 @@
|
||||
#ifndef BOOST_MPL_NOT_EQUAL_TO_HPP_INCLUDED
|
||||
#define BOOST_MPL_NOT_EQUAL_TO_HPP_INCLUDED
|
||||
|
||||
// + file: boost/mpl/not_equal_to.hpp
|
||||
// + last modified: 25/feb/03
|
||||
|
||||
// Copyright (c) 2000-03
|
||||
// Aleksey Gurtovoy
|
||||
// Copyright (c) 2000-03 Aleksey Gurtovoy
|
||||
//
|
||||
// Permission to use, copy, modify, distribute and sell this software
|
||||
// and its documentation for any purpose is hereby granted without fee,
|
||||
// provided that the above copyright notice appears in all copies and
|
||||
// that both the copyright notice and this permission notice appear in
|
||||
// supporting documentation. No representations are made about the
|
||||
// suitability of this software for any purpose. It is provided "as is"
|
||||
// without express or implied warranty.
|
||||
// Use, modification and distribution are subject to 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)
|
||||
//
|
||||
// See http://www.boost.org/libs/mpl for documentation.
|
||||
|
||||
// $Source$
|
||||
// $Date$
|
||||
// $Revision$
|
||||
|
||||
#include "boost/mpl/bool.hpp"
|
||||
#include "boost/mpl/integral_c.hpp"
|
||||
#include "boost/mpl/aux_/value_wknd.hpp"
|
||||
@@ -34,10 +30,13 @@ template<
|
||||
>
|
||||
struct not_equal_to
|
||||
{
|
||||
BOOST_STATIC_CONSTANT(bool, value = (
|
||||
BOOST_MPL_AUX_VALUE_WKND(T1)::value
|
||||
!= BOOST_MPL_AUX_VALUE_WKND(T2)::value
|
||||
));
|
||||
enum
|
||||
{
|
||||
msvc71_wknd_ = ( BOOST_MPL_AUX_VALUE_WKND(T1)::value
|
||||
!= BOOST_MPL_AUX_VALUE_WKND(T2)::value )
|
||||
};
|
||||
|
||||
BOOST_STATIC_CONSTANT(bool, value = msvc71_wknd_);
|
||||
|
||||
#if !defined(__BORLANDC__)
|
||||
typedef bool_<value> type;
|
||||
|
||||
Executable
+64
@@ -0,0 +1,64 @@
|
||||
// Copyright David Abrahams 2003. Use, modification and distribution is
|
||||
// subject to 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 PRINT_DWA20031231_HPP
|
||||
# define PRINT_DWA20031231_HPP
|
||||
|
||||
#include <boost/mpl/identity.hpp>
|
||||
|
||||
namespace boost { namespace mpl
|
||||
{
|
||||
|
||||
namespace aux
|
||||
{
|
||||
#if BOOST_MSVC
|
||||
# pragma warning(push, 3)
|
||||
// we only want one warning from MSVC, so turn off the other one
|
||||
# pragma warning(disable: 4307)
|
||||
#elif __MWERKS__
|
||||
# pragma warn_hidevirtual on
|
||||
struct print_base { virtual void f() {} };
|
||||
#endif
|
||||
|
||||
#if __EDG_VERSION__
|
||||
template <class T>
|
||||
struct dependent_unsigned
|
||||
{
|
||||
static const unsigned value = 1;
|
||||
};
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
template <class T>
|
||||
struct print
|
||||
: mpl::identity<T>
|
||||
#if __MWERKS__
|
||||
, aux::print_base
|
||||
#endif
|
||||
{
|
||||
#if BOOST_MSVC
|
||||
enum { n = sizeof(T) + -1 };
|
||||
#elif __MWERKS__
|
||||
void f(int);
|
||||
#else
|
||||
enum {
|
||||
n =
|
||||
# if __EDG_VERSION__
|
||||
aux::dependent_unsigned<T>::value
|
||||
# else
|
||||
sizeof(T)
|
||||
# endif
|
||||
> -1, };
|
||||
#endif
|
||||
};
|
||||
|
||||
}} // namespace boost::mpl
|
||||
|
||||
#if BOOST_MSVC
|
||||
# pragma warning(pop)
|
||||
#elif __MWERKS__
|
||||
# pragma warn_hidevirtual reset
|
||||
#endif
|
||||
|
||||
#endif // PRINT_DWA20031231_HPP
|
||||
@@ -1,18 +1,3 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// boost mpl/vector.hpp header file
|
||||
// See http://www.boost.org for updates, documentation, and revision history.
|
||||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// Copyright (c) 2000-02
|
||||
// Aleksey Gurtovoy
|
||||
//
|
||||
// Permission to use, copy, modify, distribute and sell this software
|
||||
// and its documentation for any purpose is hereby granted without fee,
|
||||
// provided that the above copyright notice appears in all copies and
|
||||
// that both the copyright notice and this permission notice appear in
|
||||
// supporting documentation. No representations are made about the
|
||||
// suitability of this software for any purpose. It is provided "as is"
|
||||
// without express or implied warranty.
|
||||
|
||||
#if !defined(BOOST_PP_IS_ITERATING)
|
||||
|
||||
@@ -21,17 +6,38 @@
|
||||
#ifndef BOOST_MPL_VECTOR_HPP_INCLUDED
|
||||
#define BOOST_MPL_VECTOR_HPP_INCLUDED
|
||||
|
||||
// Copyright (c) 2000-04 Aleksey Gurtovoy
|
||||
//
|
||||
// Use, modification and distribution are subject to 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)
|
||||
//
|
||||
// See http://www.boost.org/libs/mpl for documentation.
|
||||
|
||||
// $Source$
|
||||
// $Date$
|
||||
// $Revision$
|
||||
|
||||
// no include guards, the header is intended for multiple inclusion!
|
||||
|
||||
#if !defined(BOOST_MPL_PREPROCESSING_MODE)
|
||||
# include "boost/mpl/limits/vector.hpp"
|
||||
# include "boost/mpl/void.hpp"
|
||||
# include "boost/mpl/aux_/config/preprocessor.hpp"
|
||||
|
||||
# include "boost/preprocessor/inc.hpp"
|
||||
# include "boost/preprocessor/cat.hpp"
|
||||
# include "boost/preprocessor/stringize.hpp"
|
||||
|
||||
#if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING)
|
||||
# define MPL_AUX_VECTOR_HEADER \
|
||||
BOOST_PP_CAT(vector, BOOST_MPL_LIMIT_VECTOR_SIZE).hpp \
|
||||
/**/
|
||||
#else
|
||||
# define MPL_AUX_VECTOR_HEADER \
|
||||
BOOST_PP_CAT(vector, BOOST_MPL_LIMIT_VECTOR_SIZE)##.hpp \
|
||||
/**/
|
||||
#endif
|
||||
|
||||
# include BOOST_PP_STRINGIZE(boost/mpl/vector/MPL_AUX_VECTOR_HEADER)
|
||||
# undef MPL_AUX_VECTOR_HEADER
|
||||
|
||||
@@ -1,23 +1,21 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// boost mpl/vector/aux_/include_preprocessed.hpp header file
|
||||
// See http://www.boost.org for updates, documentation, and revision history.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
// Copyright (c) 2001-04 Aleksey Gurtovoy
|
||||
//
|
||||
// Copyright (c) 2001-02
|
||||
// Aleksey Gurtovoy
|
||||
// Use, modification and distribution are subject to 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)
|
||||
//
|
||||
// Permission to use, copy, modify, distribute and sell this software
|
||||
// and its documentation for any purpose is hereby granted without fee,
|
||||
// provided that the above copyright notice appears in all copies and
|
||||
// that both the copyright notice and this permission notice appear in
|
||||
// supporting documentation. No representations are made about the
|
||||
// suitability of this software for any purpose. It is provided "as is"
|
||||
// without express or implied warranty.
|
||||
// See http://www.boost.org/libs/mpl for documentation.
|
||||
|
||||
// $Source$
|
||||
// $Date$
|
||||
// $Revision$
|
||||
|
||||
// no include guards, the header is intended for multiple inclusion!
|
||||
|
||||
#include "boost/mpl/aux_/config/vector.hpp"
|
||||
#include "boost/mpl/aux_/config/ctps.hpp"
|
||||
#include "boost/mpl/aux_/config/preprocessor.hpp"
|
||||
#include "boost/preprocessor/cat.hpp"
|
||||
#include "boost/preprocessor/stringize.hpp"
|
||||
|
||||
@@ -30,11 +28,18 @@
|
||||
# define AUX_VECTOR_INCLIDE_DIR plain
|
||||
#endif
|
||||
|
||||
#if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING)
|
||||
# define AUX_PREPROCESSED_HEADER \
|
||||
aux_/preprocessed/AUX_VECTOR_INCLIDE_DIR/BOOST_MPL_PREPROCESSED_HEADER \
|
||||
AUX_VECTOR_INCLIDE_DIR/BOOST_MPL_PREPROCESSED_HEADER \
|
||||
/**/
|
||||
#else
|
||||
# define AUX_PREPROCESSED_HEADER \
|
||||
BOOST_PP_CAT(AUX_VECTOR_INCLIDE_DIR,/)##BOOST_MPL_PREPROCESSED_HEADER \
|
||||
/**/
|
||||
#endif
|
||||
|
||||
# include BOOST_PP_STRINGIZE(boost/mpl/vector/AUX_PREPROCESSED_HEADER)
|
||||
|
||||
# include BOOST_PP_STRINGIZE(boost/mpl/vector/aux_/preprocessed/AUX_PREPROCESSED_HEADER)
|
||||
|
||||
# undef AUX_PREPROCESSED_HEADER
|
||||
# undef AUX_VECTOR_INCLIDE_DIR
|
||||
|
||||
@@ -1,18 +1,3 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// boost mpl/vector_c.hpp header file
|
||||
// See http://www.boost.org for updates, documentation, and revision history.
|
||||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// Copyright (c) 2000-02
|
||||
// Aleksey Gurtovoy
|
||||
//
|
||||
// Permission to use, copy, modify, distribute and sell this software
|
||||
// and its documentation for any purpose is hereby granted without fee,
|
||||
// provided that the above copyright notice appears in all copies and
|
||||
// that both the copyright notice and this permission notice appear in
|
||||
// supporting documentation. No representations are made about the
|
||||
// suitability of this software for any purpose. It is provided "as is"
|
||||
// without express or implied warranty.
|
||||
|
||||
#if !defined(BOOST_PP_IS_ITERATING)
|
||||
|
||||
@@ -21,16 +6,37 @@
|
||||
#ifndef BOOST_MPL_VECTOR_C_HPP_INCLUDED
|
||||
#define BOOST_MPL_VECTOR_C_HPP_INCLUDED
|
||||
|
||||
// Copyright (c) 2000-04 Aleksey Gurtovoy
|
||||
//
|
||||
// Use, modification and distribution are subject to 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)
|
||||
//
|
||||
// See http://www.boost.org/libs/mpl for documentation.
|
||||
|
||||
// $Source$
|
||||
// $Date$
|
||||
// $Revision$
|
||||
|
||||
// no include guards, the header is intended for multiple inclusion!
|
||||
|
||||
#if !defined(BOOST_MPL_PREPROCESSING_MODE)
|
||||
# include "boost/mpl/limits/vector.hpp"
|
||||
# include "boost/mpl/aux_/config/preprocessor.hpp"
|
||||
|
||||
# include "boost/preprocessor/inc.hpp"
|
||||
# include "boost/preprocessor/cat.hpp"
|
||||
# include "boost/preprocessor/stringize.hpp"
|
||||
|
||||
#if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING)
|
||||
# define MPL_AUX_VECTOR_HEADER \
|
||||
BOOST_PP_CAT(BOOST_PP_CAT(vector,BOOST_MPL_LIMIT_VECTOR_SIZE), _c).hpp \
|
||||
/**/
|
||||
#else
|
||||
# define MPL_AUX_VECTOR_HEADER \
|
||||
BOOST_PP_CAT(BOOST_PP_CAT(vector,BOOST_MPL_LIMIT_VECTOR_SIZE), _c)##.hpp \
|
||||
/**/
|
||||
#endif
|
||||
|
||||
# include BOOST_PP_STRINGIZE(boost/mpl/vector/MPL_AUX_VECTOR_HEADER)
|
||||
# undef MPL_AUX_VECTOR_HEADER
|
||||
|
||||
@@ -3,6 +3,8 @@ subproject libs/mpl/test ;
|
||||
# bring in rules for testing
|
||||
import testing ;
|
||||
|
||||
compile aux_/has_xxx.cpp ;
|
||||
|
||||
compile advance.cpp ;
|
||||
compile always.cpp ;
|
||||
compile apply.cpp ;
|
||||
|
||||
@@ -35,6 +35,8 @@ struct b5 { typedef int xxx[10]; };
|
||||
struct b6 { typedef void (*xxx)(); };
|
||||
struct b7 { typedef void (xxx)(); };
|
||||
|
||||
template <class T> struct outer;
|
||||
template <class T> struct inner { typedef typename T::type type; };
|
||||
|
||||
int main()
|
||||
{
|
||||
@@ -59,5 +61,7 @@ int main()
|
||||
BOOST_STATIC_ASSERT(has_xxx<b6>::value);
|
||||
BOOST_STATIC_ASSERT(has_xxx<b7>::value);
|
||||
|
||||
BOOST_STATIC_ASSERT(!has_xxx<outer<inner<int> > >::value);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user