1
0
forked from boostorg/mpl

Compare commits

...

10 Commits

Author SHA1 Message Date
nobody 60dc0fbfa6 This commit was manufactured by cvs2svn to create tag
'Version_1_31_0'.

[SVN r22162]
2004-02-04 15:24:32 +00:00
Dave Abrahams 5e3267bf29 merged from trunk
[SVN r21914]
2004-01-25 14:27:53 +00:00
Aleksey Gurtovoy f8d40123af Merge fixes from the main trunk
[SVN r21842]
2004-01-20 16:26:31 +00:00
Dave Abrahams 232a2f9048 VC7.1+ workaround :(
[SVN r21523]
2004-01-07 05:03:10 +00:00
nobody 9e8baa64f1 This commit was manufactured by cvs2svn to create branch 'RC_1_31_0'.
[SVN r21510]
2004-01-06 13:24:32 +00:00
Dave Abrahams d2a29ae36b merged from trunk
[SVN r21502]
2004-01-05 15:06:10 +00:00
Dave Abrahams 52a0676691 Fix up busted tag replacement
[SVN r21500]
2004-01-05 15:04:58 +00:00
Dave Abrahams 3f839a6698 merged from trunk
[SVN r21489]
2004-01-05 01:26:01 +00:00
Dave Abrahams 584e2797cb Workaround the fact that Intel C++ for Linux #defines __GNUC__
[SVN r21466]
2004-01-03 20:47:15 +00:00
nobody 9b4e6c74d5 This commit was manufactured by cvs2svn to create branch 'RC_1_31_0'.
[SVN r21427]
2003-12-30 12:10:04 +00:00
23 changed files with 352 additions and 220 deletions
-1
View File
@@ -1 +0,0 @@
ECHO is on.
+1 -1
View File
@@ -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)
+1 -1
View File
@@ -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)) \
)
+20 -14
View File
@@ -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
+1 -1
View File
@@ -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)) \
)
+33
View File
@@ -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"
+19 -15
View File
@@ -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
+15 -16
View File
@@ -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;
+15 -16
View File
@@ -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;
+15 -16
View File
@@ -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
View File
@@ -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;
+15 -16
View File
@@ -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
View File
@@ -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!
+21 -15
View File
@@ -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
+15 -16
View File
@@ -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;
+64
View File
@@ -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
+21 -15
View File
@@ -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
+21 -15
View File
@@ -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
+2
View File
@@ -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 ;
+4
View File
@@ -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;
}