From: hartmann Date: Tue, 7 Feb 2006 13:05:26 +0000 (+0000) Subject: Changed files when updating to boost_1_33_1. X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=48ebb86c37dc516befcddcd14985a2fa662e0678;p=dealii-svn.git Changed files when updating to boost_1_33_1. git-svn-id: https://svn.dealii.org/trunk@12251 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/contrib/boost/include/boost/assert.hpp b/deal.II/contrib/boost/include/boost/assert.hpp index 754ebb954b..5619f29898 100644 --- a/deal.II/contrib/boost/include/boost/assert.hpp +++ b/deal.II/contrib/boost/include/boost/assert.hpp @@ -3,10 +3,9 @@ // // Copyright (c) 2001, 2002 Peter Dimov and Multi Media Ltd. // -// Permission to copy, use, modify, sell and distribute this software -// is granted provided this copyright notice appears in all copies. -// This software is provided "as is" without express or implied -// warranty, and with no claim as to its suitability for any purpose. +// 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) // // Note: There are no include guards. This is intentional. // @@ -33,6 +32,6 @@ void assertion_failed(char const * expr, char const * function, char const * fil #define BOOST_ASSERT(expr) ((expr)? ((void)0): ::boost::assertion_failed(#expr, BOOST_CURRENT_FUNCTION, __FILE__, __LINE__)) #else -# include +# include // .h to support old libraries w/o - effect is the same # define BOOST_ASSERT(expr) assert(expr) #endif diff --git a/deal.II/contrib/boost/include/boost/checked_delete.hpp b/deal.II/contrib/boost/include/boost/checked_delete.hpp index 480c041837..9bb84e8e1b 100644 --- a/deal.II/contrib/boost/include/boost/checked_delete.hpp +++ b/deal.II/contrib/boost/include/boost/checked_delete.hpp @@ -1,6 +1,8 @@ #ifndef BOOST_CHECKED_DELETE_HPP_INCLUDED #define BOOST_CHECKED_DELETE_HPP_INCLUDED +// MS compatible compilers support #pragma once + #if defined(_MSC_VER) && (_MSC_VER >= 1020) # pragma once #endif @@ -8,15 +10,13 @@ // // boost/checked_delete.hpp // -// Copyright (c) 1999, 2000, 2001, 2002 boost.org // Copyright (c) 2002, 2003 Peter Dimov // Copyright (c) 2003 Daniel Frey // Copyright (c) 2003 Howard Hinnant // -// Permission to copy, use, modify, sell and distribute this software -// is granted provided this copyright notice appears in all copies. -// This software is provided "as is" without express or implied -// warranty, and with no claim as to its suitability for any purpose. +// 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) // // See http://www.boost.org/libs/utility/checked_delete.html for documentation. // diff --git a/deal.II/contrib/boost/include/boost/config.hpp b/deal.II/contrib/boost/include/boost/config.hpp index 8e37a39e96..055a27855b 100644 --- a/deal.II/contrib/boost/include/boost/config.hpp +++ b/deal.II/contrib/boost/include/boost/config.hpp @@ -1,9 +1,9 @@ // Boost config.hpp configuration header file ------------------------------// -// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and -// distribute this software is granted provided this copyright notice appears -// in all copies. This software is provided "as is" without express or implied -// warranty, and with no claim as to its suitability for any purpose. +// (C) Copyright John Maddock 2002. +// 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/config for most recent version. @@ -67,3 +67,4 @@ + diff --git a/deal.II/contrib/boost/include/boost/config/compiler/gcc.hpp b/deal.II/contrib/boost/include/boost/config/compiler/gcc.hpp index 75b2e2cb5a..d94b16b761 100644 --- a/deal.II/contrib/boost/include/boost/config/compiler/gcc.hpp +++ b/deal.II/contrib/boost/include/boost/config/compiler/gcc.hpp @@ -1,17 +1,24 @@ -// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and -// distribute this software is granted provided this copyright notice appears -// in all copies. This software is provided "as is" without express or implied -// warranty, and with no claim as to its suitability for any purpose. +// (C) Copyright John Maddock 2001 - 2003. +// (C) Copyright Darin Adler 2001 - 2002. +// (C) Copyright Jens Maurer 2001 - 2002. +// (C) Copyright Beman Dawes 2001 - 2003. +// (C) Copyright Douglas Gregor 2002. +// (C) Copyright David Abrahams 2002 - 2003. +// (C) Copyright Synge Todo 2003. +// 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 for most recent version. // GNU C++ compiler setup: -# if __GNUC__ == 2 && __GNUC_MINOR__ == 91 +#if __GNUC__ < 3 +# if __GNUC_MINOR__ == 91 // egcs 1.1 won't parse shared_ptr.hpp without this: # define BOOST_NO_AUTO_PTR # endif -# if __GNUC__ == 2 && __GNUC_MINOR__ < 95 +# if __GNUC_MINOR__ < 95 // // Prior to gcc 2.95 member templates only partly // work - define BOOST_MSVC6_MEMBER_TEMPLATES @@ -23,32 +30,43 @@ # endif # endif -# if __GNUC__ == 2 && __GNUC_MINOR__ <= 97 +# if __GNUC_MINOR__ < 96 +# define BOOST_NO_SFINAE +# endif + +# if __GNUC_MINOR__ <= 97 # define BOOST_NO_MEMBER_TEMPLATE_FRIENDS # define BOOST_NO_OPERATORS_IN_NAMESPACE # endif -# if __GNUC__ < 3 -# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE -# endif +# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE +# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL +# define BOOST_NO_IS_ABSTRACT +#elif __GNUC__ == 3 + // + // gcc-3.x problems: + // + // Bug specific to gcc 3.1 and 3.2: + // +# if ((__GNUC_MINOR__ == 1) || (__GNUC_MINOR__ == 2)) +# define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS +# endif +# if __GNUC_MINOR__ < 4 +# define BOOST_NO_IS_ABSTRACT +# endif +#endif #ifndef __EXCEPTIONS # define BOOST_NO_EXCEPTIONS #endif -// -// Bug specific to gcc 3.1 and 3.2: -// -#if (__GNUC__ == 3) && ((__GNUC_MINOR__ == 1) || (__GNUC_MINOR__ == 2)) -# define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS -#endif // // Threading support: Turn this on unconditionally here (except for // those platforms where we can know for sure). It will get turned off again // later if no threading API is detected. // -#if !defined(__MINGW32__) && !defined(__CYGWIN__) && !defined(linux) && !defined(__linux) && !defined(__linux__) +#if !defined(__MINGW32__) && !defined(linux) && !defined(__linux) && !defined(__linux__) # define BOOST_HAS_THREADS #endif @@ -72,4 +90,16 @@ #if (__GNUC__ == 2) && (__GNUC_MINOR__ < 90) # error "Compiler not configured - please reconfigure" #endif +// +// last known and checked version is 4.0 (Pre-release): +#if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 0)) +# if defined(BOOST_ASSERT_CONFIG) +# error "Unknown compiler version - please run the configure tests and report the results" +# else +// we don't emit warnings here anymore since there are no defect macros defined for +// gcc post 3.4, so any failures are gcc regressions... +//# warning "Unknown compiler version - please run the configure tests and report the results" +# endif +#endif + diff --git a/deal.II/contrib/boost/include/boost/config/platform/linux.hpp b/deal.II/contrib/boost/include/boost/config/platform/linux.hpp index 21e375ef23..51ae13347c 100644 --- a/deal.II/contrib/boost/include/boost/config/platform/linux.hpp +++ b/deal.II/contrib/boost/include/boost/config/platform/linux.hpp @@ -1,7 +1,8 @@ -// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and -// distribute this software is granted provided this copyright notice appears -// in all copies. This software is provided "as is" without express or implied -// warranty, and with no claim as to its suitability for any purpose. +// (C) Copyright John Maddock 2001 - 2003. +// (C) Copyright Jens Maurer 2001 - 2003. +// 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 for most recent version. @@ -94,3 +95,4 @@ # endif #endif + diff --git a/deal.II/contrib/boost/include/boost/config/posix_features.hpp b/deal.II/contrib/boost/include/boost/config/posix_features.hpp index 81979c3ff9..4afb476b7f 100644 --- a/deal.II/contrib/boost/include/boost/config/posix_features.hpp +++ b/deal.II/contrib/boost/include/boost/config/posix_features.hpp @@ -1,7 +1,8 @@ -// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and -// distribute this software is granted provided this copyright notice appears -// in all copies. This software is provided "as is" without express or implied -// warranty, and with no claim as to its suitability for any purpose. +// (C) Copyright John Maddock 2001 - 2003. +// 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 for most recent version. @@ -75,7 +76,7 @@ // in issue 4, version 2 (_XOPEN_VERSION > 500). # if defined(_XOPEN_VERSION) && (_XOPEN_VERSION+0 >= 500) # define BOOST_HAS_GETTIMEOFDAY -# if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 500) +# if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE+0 >= 500) # define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE # endif # endif @@ -83,3 +84,4 @@ # endif + diff --git a/deal.II/contrib/boost/include/boost/config/select_compiler_config.hpp b/deal.II/contrib/boost/include/boost/config/select_compiler_config.hpp index 8a16a48c04..3453f1a35f 100644 --- a/deal.II/contrib/boost/include/boost/config/select_compiler_config.hpp +++ b/deal.II/contrib/boost/include/boost/config/select_compiler_config.hpp @@ -1,9 +1,11 @@ // Boost compiler configuration selection header file -// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and -// distribute this software is granted provided this copyright notice appears -// in all copies. This software is provided "as is" without express or implied -// warranty, and with no claim as to its suitability for any purpose. +// (C) Copyright John Maddock 2001 - 2003. +// (C) Copyright Martin Wille 2003. +// (C) Copyright Guillaume Melquiond 2003. +// 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 for most recent version. @@ -14,6 +16,10 @@ // Comeau C++ # define BOOST_COMPILER_CONFIG "boost/config/compiler/comeau.hpp" +#elif defined __DMC__ +// Digital Mars C++ +# define BOOST_COMPILER_CONFIG "boost/config/compiler/digitalmars.hpp" + #elif defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC) // Intel # define BOOST_COMPILER_CONFIG "boost/config/compiler/intel.hpp" @@ -72,7 +78,6 @@ #elif defined (BOOST_ASSERT_CONFIG) // this must come last - generate an error if we don't // recognise the compiler: -# error "Unknown compiler - please configure and report the results to boost.org" +# error "Unknown compiler - please configure (http://www.boost.org/libs/config/config.htm#configuring) and report the results to the main boost mailing list (http://www.boost.org/more/mailing_lists.htm#main)" #endif - diff --git a/deal.II/contrib/boost/include/boost/config/select_platform_config.hpp b/deal.II/contrib/boost/include/boost/config/select_platform_config.hpp index 5921cc5e55..2101ed431d 100644 --- a/deal.II/contrib/boost/include/boost/config/select_platform_config.hpp +++ b/deal.II/contrib/boost/include/boost/config/select_platform_config.hpp @@ -1,9 +1,10 @@ // Boost compiler configuration selection header file -// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and -// distribute this software is granted provided this copyright notice appears -// in all copies. This software is provided "as is" without express or implied -// warranty, and with no claim as to its suitability for any purpose. +// (C) Copyright John Maddock 2001 - 2002. +// (C) Copyright Jens Maurer 2001. +// 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 for most recent version. @@ -16,7 +17,7 @@ // linux: # define BOOST_PLATFORM_CONFIG "boost/config/platform/linux.hpp" -#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) +#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) // BSD: # define BOOST_PLATFORM_CONFIG "boost/config/platform/bsd.hpp" @@ -48,7 +49,7 @@ // MacOS # define BOOST_PLATFORM_CONFIG "boost/config/platform/macos.hpp" -#elif defined(__IBMCPP__) +#elif defined(__IBMCPP__) || defined(_AIX) // IBM # define BOOST_PLATFORM_CONFIG "boost/config/platform/aix.hpp" @@ -82,3 +83,4 @@ #endif + diff --git a/deal.II/contrib/boost/include/boost/config/select_stdlib_config.hpp b/deal.II/contrib/boost/include/boost/config/select_stdlib_config.hpp index 668b97c5fd..b7bf591434 100644 --- a/deal.II/contrib/boost/include/boost/config/select_stdlib_config.hpp +++ b/deal.II/contrib/boost/include/boost/config/select_stdlib_config.hpp @@ -1,9 +1,11 @@ // Boost compiler configuration selection header file -// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and -// distribute this software is granted provided this copyright notice appears -// in all copies. This software is provided "as is" without express or implied -// warranty, and with no claim as to its suitability for any purpose. +// (C) Copyright John Maddock 2001 - 2003. +// (C) Copyright Jens Maurer 2001 - 2002. +// 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 for most recent version. @@ -31,7 +33,7 @@ // Rogue Wave library: # define BOOST_STDLIB_CONFIG "boost/config/stdlib/roguewave.hpp" -#elif defined(__GLIBCPP__) +#elif defined(__GLIBCPP__) || defined(__GLIBCXX__) // GNU libstdc++ 3 # define BOOST_STDLIB_CONFIG "boost/config/stdlib/libstdcpp3.hpp" @@ -63,3 +65,4 @@ #endif + diff --git a/deal.II/contrib/boost/include/boost/config/stdlib/libstdcpp3.hpp b/deal.II/contrib/boost/include/boost/config/stdlib/libstdcpp3.hpp index e4ddcdf0e5..5cf5ef773f 100644 --- a/deal.II/contrib/boost/include/boost/config/stdlib/libstdcpp3.hpp +++ b/deal.II/contrib/boost/include/boost/config/stdlib/libstdcpp3.hpp @@ -1,25 +1,64 @@ -// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and -// distribute this software is granted provided this copyright notice appears -// in all copies. This software is provided "as is" without express or implied -// warranty, and with no claim as to its suitability for any purpose. +// (C) Copyright John Maddock 2001. +// (C) Copyright Jens Maurer 2001. +// 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 for most recent version. // config for libstdc++ v3 // not much to go in here: +#ifdef __GLIBCXX__ +#define BOOST_STDLIB "GNU libstdc++ version " BOOST_STRINGIZE(__GLIBCXX__) +#else #define BOOST_STDLIB "GNU libstdc++ version " BOOST_STRINGIZE(__GLIBCPP__) +#endif -#ifndef _GLIBCPP_USE_WCHAR_T +#if !defined(_GLIBCPP_USE_WCHAR_T) && !defined(_GLIBCXX_USE_WCHAR_T) # define BOOST_NO_CWCHAR # define BOOST_NO_CWCTYPE # define BOOST_NO_STD_WSTRING # define BOOST_NO_STD_WSTREAMBUF #endif - -#ifndef _GLIBCPP_USE_LONG_LONG + +#if defined(__osf__) && !defined(_REENTRANT) \ + && ( defined(_GLIBCXX_HAVE_GTHR_DEFAULT) || defined(_GLIBCPP_HAVE_GTHR_DEFAULT) ) +// GCC 3 on Tru64 forces the definition of _REENTRANT when any std lib header +// file is included, therefore for consistency we define it here as well. +# define _REENTRANT +#endif + +#ifdef __GLIBCXX__ // gcc 3.4 and greater: +# if defined(_GLIBCXX_HAVE_GTHR_DEFAULT) \ + || defined(_GLIBCXX__PTHREADS) + // + // If the std lib has thread support turned on, then turn it on in Boost + // as well. We do this because some gcc-3.4 std lib headers define _REENTANT + // while others do not... + // +# define BOOST_HAS_THREADS +# else +# define BOOST_DISABLE_THREADS +# endif +#elif defined(__GLIBCPP__) \ + && !defined(_GLIBCPP_HAVE_GTHR_DEFAULT) \ + && !defined(_GLIBCPP__PTHREADS) + // disable thread support if the std lib was built single threaded: +# define BOOST_DISABLE_THREADS +#endif + +#if (defined(linux) || defined(__linux) || defined(__linux__)) && defined(__arm__) && defined(_GLIBCPP_HAVE_GTHR_DEFAULT) +// linux on arm apparently doesn't define _REENTRANT +// so just turn on threading support whenever the std lib is thread safe: +# define BOOST_HAS_THREADS +#endif + + +#if !defined(_GLIBCPP_USE_LONG_LONG) \ + && !defined(_GLIBCXX_USE_LONG_LONG)\ + && defined(BOOST_HAS_LONG_LONG) // May have been set by compiler/*.hpp, but "long long" without library // support is useless. # undef BOOST_HAS_LONG_LONG #endif - diff --git a/deal.II/contrib/boost/include/boost/config/suffix.hpp b/deal.II/contrib/boost/include/boost/config/suffix.hpp index 6635666bc1..d4d9502d4a 100644 --- a/deal.II/contrib/boost/include/boost/config/suffix.hpp +++ b/deal.II/contrib/boost/include/boost/config/suffix.hpp @@ -1,9 +1,16 @@ // Boost config.hpp configuration header file ------------------------------// -// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and -// distribute this software is granted provided this copyright notice appears -// in all copies. This software is provided "as is" without express or implied -// warranty, and with no claim as to its suitability for any purpose. +// (C) Copyright John Maddock 2001 - 2003. +// (C) Copyright Darin Adler 2001. +// (C) Copyright Peter Dimov 2001. +// (C) Copyright Bill Kempf 2002. +// (C) Copyright Jens Maurer 2002. +// (C) Copyright David Abrahams 2002 - 2003. +// (C) Copyright Gennaro Prota 2003. +// (C) Copyright Eric Friedman 2003. +// 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 for most recent version. @@ -25,11 +32,15 @@ // #include # if !defined(BOOST_HAS_LONG_LONG) \ - && !(defined(BOOST_MSVC) && BOOST_MSVC <=1300) && !defined(__BORLANDC__) \ + && !defined(BOOST_MSVC) && !defined(__BORLANDC__) \ && (defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX)) # define BOOST_HAS_LONG_LONG #endif -#if !defined(BOOST_HAS_LONG_LONG) && !defined(BOOST_NO_INTEGRAL_INT64_T) + +// TODO: Remove the following lines after the 1.33 release because the presence +// of an integral 64 bit type has nothing to do with support for long long. + +#if !defined(BOOST_HAS_LONG_LONG) && !defined(BOOST_NO_INTEGRAL_INT64_T) && !defined(__DECCXX_VER) # define BOOST_NO_INTEGRAL_INT64_T #endif @@ -100,6 +111,14 @@ # define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG # endif +// +// Without partial specialization, we can't have array-type partial specialisations: +// +# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ + && !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS) +# define BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS +# endif + // // Without partial specialization, std::iterator_traits can't work: // @@ -128,6 +147,13 @@ # define BOOST_NO_STD_ALLOCATOR # endif +// +// without ADL support then using declarations will break ADL as well: +// +#if defined(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP) && !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL) +# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL +#endif + // // If we have a standard allocator, then we have a partial one as well: // @@ -207,6 +233,17 @@ # undef BOOST_HAS_THREADS #endif +// +// Turn threading detail macros off if we don't (want to) use threading +// +#ifndef BOOST_HAS_THREADS +# undef BOOST_HAS_PTHREADS +# undef BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE +# undef BOOST_HAS_WINTHREADS +# undef BOOST_HAS_BETHREADS +# undef BOOST_HAS_MPTASKS +#endif + // // If the compiler claims to be C99 conformant, then it had better // have a : @@ -227,11 +264,22 @@ # define BOOST_NO_HASH # endif +// BOOST_HAS_ABI_HEADERS +// This macro gets set if we have headers that fix the ABI, +// and prevent ODR violations when linking to external libraries: +#if defined(BOOST_ABI_PREFIX) && defined(BOOST_ABI_SUFFIX) && !defined(BOOST_HAS_ABI_HEADERS) +# define BOOST_HAS_ABI_HEADERS +#endif + +#if defined(BOOST_HAS_ABI_HEADERS) && defined(BOOST_DISABLE_ABI_HEADERS) +# undef BOOST_HAS_ABI_HEADERS +#endif + // BOOST_NO_STDC_NAMESPACE workaround --------------------------------------// // Because std::size_t usage is so common, even in boost headers which do not // otherwise use the C library, the workaround is included here so // that ugly workaround code need not appear in many other boost headers. -// NOTE WELL: This is a workaround for non-conforming compilers; +// NOTE WELL: This is a workaround for non-conforming compilers; // must still be #included in the usual places so that inclusion // works as expected with standard conforming compilers. The resulting // double inclusion of is harmless. @@ -241,17 +289,29 @@ namespace std { using ::ptrdiff_t; using ::size_t; } # endif +// Workaround for the unfortunate min/max macros defined by some platform headers + +#define BOOST_PREVENT_MACRO_SUBSTITUTION + +#ifndef BOOST_USING_STD_MIN +# define BOOST_USING_STD_MIN() using std::min +#endif + +#ifndef BOOST_USING_STD_MAX +# define BOOST_USING_STD_MAX() using std::max +#endif + // BOOST_NO_STD_MIN_MAX workaround -----------------------------------------// # ifdef BOOST_NO_STD_MIN_MAX namespace std { template - inline const _Tp& min(const _Tp& __a, const _Tp& __b) { + inline const _Tp& min BOOST_PREVENT_MACRO_SUBSTITUTION (const _Tp& __a, const _Tp& __b) { return __b < __a ? __b : __a; } template - inline const _Tp& max(const _Tp& __a, const _Tp& __b) { + inline const _Tp& max BOOST_PREVENT_MACRO_SUBSTITUTION (const _Tp& __a, const _Tp& __b) { return __a < __b ? __b : __a; } } @@ -270,27 +330,33 @@ namespace std { # define BOOST_STATIC_CONSTANT(type, assignment) static const type assignment # endif -// BOOST_USE_FACET workaround ----------------------------------------------// +// BOOST_USE_FACET / HAS_FACET workaround ----------------------------------// // When the standard library does not have a conforming std::use_facet there // are various workarounds available, but they differ from library to library. -// This macro provides a consistent way to access a locale's facets. +// The same problem occurs with has_facet. +// These macros provide a consistent way to access a locale's facets. // Usage: // replace // std::use_facet(loc); // with // BOOST_USE_FACET(Type, loc); // Note do not add a std:: prefix to the front of BOOST_USE_FACET! +// Use for BOOST_HAS_FACET is analagous. #if defined(BOOST_NO_STD_USE_FACET) # ifdef BOOST_HAS_TWO_ARG_USE_FACET # define BOOST_USE_FACET(Type, loc) std::use_facet(loc, static_cast(0)) +# define BOOST_HAS_FACET(Type, loc) std::has_facet(loc, static_cast(0)) # elif defined(BOOST_HAS_MACRO_USE_FACET) # define BOOST_USE_FACET(Type, loc) std::_USE(loc, Type) +# define BOOST_HAS_FACET(Type, loc) std::_HAS(loc, Type) # elif defined(BOOST_HAS_STLP_USE_FACET) # define BOOST_USE_FACET(Type, loc) (*std::_Use_facet(loc)) +# define BOOST_HAS_FACET(Type, loc) std::has_facet< Type >(loc) # endif #else # define BOOST_USE_FACET(Type, loc) std::use_facet< Type >(loc) +# define BOOST_HAS_FACET(Type, loc) std::has_facet< Type >(loc) #endif // BOOST_NESTED_TEMPLATE workaround ------------------------------------------// @@ -333,10 +399,107 @@ namespace std { #ifndef BOOST_NO_DEDUCED_TYPENAME # define BOOST_DEDUCED_TYPENAME typename -#else +#else # define BOOST_DEDUCED_TYPENAME #endif +// long long workaround ------------------------------------------// +// On gcc (and maybe other compilers?) long long is alway supported +// but it's use may generate either warnings (with -ansi), or errors +// (with -pedantic -ansi) unless it's use is prefixed by __extension__ +// +#if defined(BOOST_HAS_LONG_LONG) +namespace boost{ +# ifdef __GNUC__ + __extension__ typedef long long long_long_type; + __extension__ typedef unsigned long long ulong_long_type; +# else + typedef long long long_long_type; + typedef unsigned long long ulong_long_type; +# endif +} +#endif + +// BOOST_[APPEND_]EXPLICIT_TEMPLATE_[NON_]TYPE macros --------------------------// +// +// Some compilers have problems with function templates whose +// template parameters don't appear in the function parameter +// list (basically they just link one instantiation of the +// template in the final executable). These macros provide a +// uniform way to cope with the problem with no effects on the +// calling syntax. + +// Example: +// +// #include +// #include +// #include +// +// template +// void f() { std::cout << n << ' '; } +// +// template +// void g() { std::cout << typeid(T).name() << ' '; } +// +// int main() { +// f<1>(); +// f<2>(); +// +// g(); +// g(); +// } +// +// With VC++ 6.0 the output is: +// +// 2 2 double double +// +// To fix it, write +// +// template +// void f(BOOST_EXPLICIT_TEMPLATE_NON_TYPE(int, n)) { ... } +// +// template +// void g(BOOST_EXPLICIT_TEMPLATE_TYPE(T)) { ... } +// + + +#if defined BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS + +# include "boost/type.hpp" +# include "boost/non_type.hpp" + +# define BOOST_EXPLICIT_TEMPLATE_TYPE(t) boost::type* = 0 +# define BOOST_EXPLICIT_TEMPLATE_TYPE_SPEC(t) boost::type* +# define BOOST_EXPLICIT_TEMPLATE_NON_TYPE(t, v) boost::non_type* = 0 +# define BOOST_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v) boost::non_type* + +# define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(t) \ + , BOOST_EXPLICIT_TEMPLATE_TYPE(t) +# define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC(t) \ + , BOOST_EXPLICIT_TEMPLATE_TYPE_SPEC(t) +# define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(t, v) \ + , BOOST_EXPLICIT_TEMPLATE_NON_TYPE(t, v) +# define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v) \ + , BOOST_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v) + +#else + +// no workaround needed: expand to nothing + +# define BOOST_EXPLICIT_TEMPLATE_TYPE(t) +# define BOOST_EXPLICIT_TEMPLATE_TYPE_SPEC(t) +# define BOOST_EXPLICIT_TEMPLATE_NON_TYPE(t, v) +# define BOOST_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v) + +# define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(t) +# define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC(t) +# define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(t, v) +# define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v) + + +#endif // defined BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS + + // ---------------------------------------------------------------------------// // @@ -349,7 +512,7 @@ namespace std { // // Helper macro BOOST_JOIN: -// The following piece of macro magic joins the two +// The following piece of macro magic joins the two // arguments together, even when one of the arguments is // itself a macro (see 16.3.1 in C++ standard). The key // is that macro expansion of macro arguments does not @@ -381,3 +544,4 @@ namespace std { #endif + diff --git a/deal.II/contrib/boost/include/boost/config/user.hpp b/deal.II/contrib/boost/include/boost/config/user.hpp index 98adbac909..5a4a9d4776 100644 --- a/deal.II/contrib/boost/include/boost/config/user.hpp +++ b/deal.II/contrib/boost/include/boost/config/user.hpp @@ -1,9 +1,9 @@ // boost/config/user.hpp ---------------------------------------------------// -// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and -// distribute this software is granted provided this copyright notice appears -// in all copies. This software is provided "as is" without express or implied -// warranty, and with no claim as to its suitability for any purpose. +// (C) Copyright John Maddock 2001. +// 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) // Do not check in modified versions of this file, // This file may be customized by the end user, but not by boost. @@ -65,4 +65,60 @@ // even when available: // #define BOOST_DISABLE_WIN32 +// BOOST_DISABLE_ABI_HEADERS: Stops boost headers from including any +// prefix/suffix headers that normally control things like struct +// packing and alignment. +// #define BOOST_DISABLE_ABI_HEADERS + +// BOOST_ABI_PREFIX: A prefix header to include in place of whatever +// boost.config would normally select, any replacement should set up +// struct packing and alignment options as required. +// #define BOOST_ABI_PREFIX my-header-name + +// BOOST_ABI_SUFFIX: A suffix header to include in place of whatever +// boost.config would normally select, any replacement should undo +// the effects of the prefix header. +// #define BOOST_ABI_SUFFIX my-header-name + +// BOOST_ALL_DYN_LINK: Forces all libraries that have separate source, +// to be linked as dll's rather than static libraries on Microsoft Windows +// (this macro is used to turn on __declspec(dllimport) modifiers, so that +// the compiler knows which symbols to look for in a dll rather than in a +// static library). Note that there may be some libraries that can only +// be statically linked (Boost.Test for example) and others which may only +// be dynamically linked (Boost.Threads for example), in these cases this +// macro has no effect. +// #define BOOST_ALL_DYN_LINK + +// BOOST_WHATEVER_DYN_LINK: Forces library "whatever" to be linked as a dll +// rather than a static library on Microsoft Windows: replace the WHATEVER +// part of the macro name with the name of the library that you want to +// dynamically link to, for example use BOOST_DATE_TIME_DYN_LINK or +// BOOST_REGEX_DYN_LINK etc (this macro is used to turn on __declspec(dllimport) +// modifiers, so that the compiler knows which symbols to look for in a dll +// rather than in a static library). +// Note that there may be some libraries that can only be statically linked +// (Boost.Test for example) and others which may only be dynamically linked +// (Boost.Threads for example), in these cases this macro is unsupported. +// #define BOOST_WHATEVER_DYN_LINK + +// BOOST_ALL_NO_LIB: Tells the config system not to automatically select +// which libraries to link against. +// Normally if a compiler supports #pragma lib, then the correct library +// build variant will be automatically selected and linked against, +// simply by the act of including one of that library's headers. +// This macro turns that feature off. +// #define BOOST_ALL_NO_LIB + +// BOOST_WHATEVER_NO_LIB: Tells the config system not to automatically +// select which library to link against for library "whatever", +// replace WHATEVER in the macro name with the name of the library; +// for example BOOST_DATE_TIME_NO_LIB or BOOST_REGEX_NO_LIB. +// Normally if a compiler supports #pragma lib, then the correct library +// build variant will be automatically selected and linked against, simply +// by the act of including one of that library's headers. This macro turns +// that feature off. +// #define BOOST_WHATEVER_NO_LIB + + diff --git a/deal.II/contrib/boost/include/boost/detail/shared_count.hpp b/deal.II/contrib/boost/include/boost/detail/shared_count.hpp index 3ade9f91ab..49aca857f7 100644 --- a/deal.II/contrib/boost/include/boost/detail/shared_count.hpp +++ b/deal.II/contrib/boost/include/boost/detail/shared_count.hpp @@ -1,6 +1,8 @@ #ifndef BOOST_DETAIL_SHARED_COUNT_HPP_INCLUDED #define BOOST_DETAIL_SHARED_COUNT_HPP_INCLUDED +// MS compatible compilers support #pragma once + #if defined(_MSC_VER) && (_MSC_VER >= 1020) # pragma once #endif @@ -9,293 +11,35 @@ // detail/shared_count.hpp // // Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd. +// Copyright 2004-2005 Peter Dimov // -// Permission to copy, use, modify, sell and distribute this software -// is granted provided this copyright notice appears in all copies. -// This software is provided "as is" without express or implied -// warranty, and with no claim as to its suitability for any purpose. +// 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) // -#include - -#if defined(BOOST_SP_USE_STD_ALLOCATOR) && defined(BOOST_SP_USE_QUICK_ALLOCATOR) -# error BOOST_SP_USE_STD_ALLOCATOR and BOOST_SP_USE_QUICK_ALLOCATOR are incompatible. +#ifdef __BORLANDC__ +# pragma warn -8027 // Functions containing try are not expanded inline #endif +#include #include #include -#include - -#if defined(BOOST_SP_USE_QUICK_ALLOCATOR) -#include -#endif +#include +#include +#include #include // std::auto_ptr, std::allocator #include // std::less -#include // std::exception #include // std::bad_alloc #include // std::type_info in get_deleter -#include // std::size_t - -#ifdef __BORLANDC__ -# pragma warn -8026 // Functions with excep. spec. are not expanded inline -# pragma warn -8027 // Functions containing try are not expanded inline -#endif namespace boost { -// Debug hooks - -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - -void sp_scalar_constructor_hook(void * px, std::size_t size, void * pn); -void sp_array_constructor_hook(void * px); -void sp_scalar_destructor_hook(void * px, std::size_t size, void * pn); -void sp_array_destructor_hook(void * px); - -#endif - - -// The standard library that comes with Borland C++ 5.5.1 -// defines std::exception and its members as having C calling -// convention (-pc). When the definition of bad_weak_ptr -// is compiled with -ps, the compiler issues an error. -// Hence, the temporary #pragma option -pc below. The version -// check is deliberately conservative. - -#if defined(__BORLANDC__) && __BORLANDC__ == 0x551 -# pragma option push -pc -#endif - -class bad_weak_ptr: public std::exception -{ -public: - - virtual char const * what() const throw() - { - return "boost::bad_weak_ptr"; - } -}; - -#if defined(__BORLANDC__) && __BORLANDC__ == 0x551 -# pragma option pop -#endif - namespace detail { -class sp_counted_base -{ -private: - - typedef detail::lightweight_mutex mutex_type; - -public: - - sp_counted_base(): use_count_(1), weak_count_(1) - { - } - - virtual ~sp_counted_base() // nothrow - { - } - - // dispose() is called when use_count_ drops to zero, to release - // the resources managed by *this. - - virtual void dispose() = 0; // nothrow - - // destruct() is called when weak_count_ drops to zero. - - virtual void destruct() // nothrow - { - delete this; - } - - virtual void * get_deleter(std::type_info const & ti) = 0; - - void add_ref() - { -#if defined(BOOST_HAS_THREADS) - mutex_type::scoped_lock lock(mtx_); -#endif - if(use_count_ == 0 && weak_count_ != 0) boost::throw_exception(boost::bad_weak_ptr()); - ++use_count_; - ++weak_count_; - } - - void release() // nothrow - { - { -#if defined(BOOST_HAS_THREADS) - mutex_type::scoped_lock lock(mtx_); -#endif - long new_use_count = --use_count_; - - if(new_use_count != 0) - { - --weak_count_; - return; - } - } - - dispose(); - weak_release(); - } - - void weak_add_ref() // nothrow - { -#if defined(BOOST_HAS_THREADS) - mutex_type::scoped_lock lock(mtx_); -#endif - ++weak_count_; - } - - void weak_release() // nothrow - { - long new_weak_count; - - { -#if defined(BOOST_HAS_THREADS) - mutex_type::scoped_lock lock(mtx_); -#endif - new_weak_count = --weak_count_; - } - - if(new_weak_count == 0) - { - destruct(); - } - } - - long use_count() const // nothrow - { -#if defined(BOOST_HAS_THREADS) - mutex_type::scoped_lock lock(mtx_); -#endif - return use_count_; - } - -private: - - sp_counted_base(sp_counted_base const &); - sp_counted_base & operator= (sp_counted_base const &); - - // inv: use_count_ <= weak_count_ - - long use_count_; - long weak_count_; - -#if defined(BOOST_HAS_THREADS) - mutable mutex_type mtx_; -#endif -}; - -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - -template void cbi_call_constructor_hook(sp_counted_base * pn, T * px, checked_deleter const &, int) -{ - boost::sp_scalar_constructor_hook(px, sizeof(T), pn); -} - -template void cbi_call_constructor_hook(sp_counted_base *, T * px, checked_array_deleter const &, int) -{ - boost::sp_array_constructor_hook(px); -} - -template void cbi_call_constructor_hook(sp_counted_base *, P const &, D const &, long) -{ -} - -template void cbi_call_destructor_hook(sp_counted_base * pn, T * px, checked_deleter const &, int) -{ - boost::sp_scalar_destructor_hook(px, sizeof(T), pn); -} - -template void cbi_call_destructor_hook(sp_counted_base *, T * px, checked_array_deleter const &, int) -{ - boost::sp_array_destructor_hook(px); -} - -template void cbi_call_destructor_hook(sp_counted_base *, P const &, D const &, long) -{ -} - -#endif - -// -// Borland's Codeguard trips up over the -Vx- option here: -// -#ifdef __CODEGUARD__ -# pragma option push -Vx- -#endif - -template class sp_counted_base_impl: public sp_counted_base -{ -private: - - P ptr; // copy constructor must not throw - D del; // copy constructor must not throw - - sp_counted_base_impl(sp_counted_base_impl const &); - sp_counted_base_impl & operator= (sp_counted_base_impl const &); - - typedef sp_counted_base_impl this_type; - -public: - - // pre: initial_use_count <= initial_weak_count, d(p) must not throw - - sp_counted_base_impl(P p, D d): ptr(p), del(d) - { -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - detail::cbi_call_constructor_hook(this, p, d, 0); -#endif - } - - virtual void dispose() // nothrow - { -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - detail::cbi_call_destructor_hook(this, ptr, del, 0); -#endif - del(ptr); - } - - virtual void * get_deleter(std::type_info const & ti) - { - return ti == typeid(D)? &del: 0; - } - -#if defined(BOOST_SP_USE_STD_ALLOCATOR) - - void * operator new(std::size_t) - { - return std::allocator().allocate(1, static_cast(0)); - } - - void operator delete(void * p) - { - std::allocator().deallocate(static_cast(p), 1); - } - -#endif - -#if defined(BOOST_SP_USE_QUICK_ALLOCATOR) - - void * operator new(std::size_t) - { - return quick_allocator::alloc(); - } - - void operator delete(void * p) - { - quick_allocator::dealloc(p); - } - -#endif -}; - #if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) int const shared_count_id = 0x2C35F101; @@ -326,6 +70,36 @@ public: { } + template explicit shared_count( Y * p ): pi_( 0 ) +#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) + , id_(shared_count_id) +#endif + { +#ifndef BOOST_NO_EXCEPTIONS + + try + { + pi_ = new sp_counted_impl_p( p ); + } + catch(...) + { + boost::checked_delete( p ); + throw; + } + +#else + + pi_ = new sp_counted_impl_p( p ); + + if( pi_ == 0 ) + { + boost::checked_delete( p ); + boost::throw_exception( std::bad_alloc() ); + } + +#endif + } + template shared_count(P p, D d): pi_(0) #if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) , id_(shared_count_id) @@ -335,7 +109,7 @@ public: try { - pi_ = new sp_counted_base_impl(p, d); + pi_ = new sp_counted_impl_pd(p, d); } catch(...) { @@ -345,7 +119,7 @@ public: #else - pi_ = new sp_counted_base_impl(p, d); + pi_ = new sp_counted_impl_pd(p, d); if(pi_ == 0) { @@ -361,11 +135,20 @@ public: // auto_ptr is special cased to provide the strong guarantee template - explicit shared_count(std::auto_ptr & r): pi_(new sp_counted_base_impl< Y *, checked_deleter >(r.get(), checked_deleter())) + explicit shared_count( std::auto_ptr & r ): pi_( new sp_counted_impl_p( r.get() ) ) #if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) , id_(shared_count_id) #endif { +#ifdef BOOST_NO_EXCEPTIONS + + if( pi_ == 0 ) + { + boost::throw_exception(std::bad_alloc()); + } + +#endif + r.release(); } @@ -373,7 +156,7 @@ public: ~shared_count() // nothrow { - if(pi_ != 0) pi_->release(); + if( pi_ != 0 ) pi_->release(); #if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) id_ = 0; #endif @@ -384,7 +167,7 @@ public: , id_(shared_count_id) #endif { - if(pi_ != 0) pi_->add_ref(); + if( pi_ != 0 ) pi_->add_ref_copy(); } explicit shared_count(weak_count const & r); // throws bad_weak_ptr when r.use_count() == 0 @@ -392,9 +175,13 @@ public: shared_count & operator= (shared_count const & r) // nothrow { sp_counted_base * tmp = r.pi_; - if(tmp != 0) tmp->add_ref(); - if(pi_ != 0) pi_->release(); - pi_ = tmp; + + if( tmp != pi_ ) + { + if( tmp != 0 ) tmp->add_ref_copy(); + if( pi_ != 0 ) pi_->release(); + pi_ = tmp; + } return *this; } @@ -423,19 +210,15 @@ public: friend inline bool operator<(shared_count const & a, shared_count const & b) { - return std::less()(a.pi_, b.pi_); + return std::less()( a.pi_, b.pi_ ); } void * get_deleter(std::type_info const & ti) const { - return pi_? pi_->get_deleter(ti): 0; + return pi_? pi_->get_deleter( ti ): 0; } }; -#ifdef __CODEGUARD__ -# pragma option pop -#endif - class weak_count { @@ -525,18 +308,14 @@ public: } }; -inline shared_count::shared_count(weak_count const & r): pi_(r.pi_) +inline shared_count::shared_count( weak_count const & r ): pi_( r.pi_ ) #if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) , id_(shared_count_id) #endif { - if(pi_ != 0) - { - pi_->add_ref(); - } - else + if( pi_ == 0 || !pi_->add_ref_lock() ) { - boost::throw_exception(boost::bad_weak_ptr()); + boost::throw_exception( boost::bad_weak_ptr() ); } } @@ -546,7 +325,6 @@ inline shared_count::shared_count(weak_count const & r): pi_(r.pi_) #ifdef __BORLANDC__ # pragma warn .8027 // Functions containing try are not expanded inline -# pragma warn .8026 // Functions with excep. spec. are not expanded inline #endif #endif // #ifndef BOOST_DETAIL_SHARED_COUNT_HPP_INCLUDED diff --git a/deal.II/contrib/boost/include/boost/detail/workaround.hpp b/deal.II/contrib/boost/include/boost/detail/workaround.hpp index 995c53ca85..b5ecad7744 100644 --- a/deal.II/contrib/boost/include/boost/detail/workaround.hpp +++ b/deal.II/contrib/boost/include/boost/detail/workaround.hpp @@ -1,8 +1,7 @@ -// Copyright David Abrahams 2002. Permission to copy, use, -// modify, sell and distribute this software is granted provided this -// copyright notice appears in all copies. This software is provided -// "as is" without express or implied warranty, and with no claim as -// to its suitability for any purpose. +// Copyright David Abrahams 2002. +// 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 WORKAROUND_DWA2002126_HPP # define WORKAROUND_DWA2002126_HPP @@ -62,7 +61,7 @@ # define BOOST_OPEN_PAREN ( # define BOOST_TESTED_AT(value) > value) ?(-1): BOOST_OPEN_PAREN 1 # else -# define BOOST_TESTED_AT(value) != 0 +# define BOOST_TESTED_AT(value) != ((value)-(value)) # endif # else diff --git a/deal.II/contrib/boost/include/boost/mpl/aux_/arity.hpp b/deal.II/contrib/boost/include/boost/mpl/aux_/arity.hpp index 3a7d281597..45f179e5f8 100644 --- a/deal.II/contrib/boost/include/boost/mpl/aux_/arity.hpp +++ b/deal.II/contrib/boost/include/boost/mpl/aux_/arity.hpp @@ -1,32 +1,27 @@ -//----------------------------------------------------------------------------- -// boost mpl/aux_/arity.hpp header file -// See http://www.boost.org for updates, documentation, and revision history. -//----------------------------------------------------------------------------- -// -// Copyright (c) 2001-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. #ifndef BOOST_MPL_AUX_ARITY_HPP_INCLUDED #define BOOST_MPL_AUX_ARITY_HPP_INCLUDED -#include "boost/mpl/aux_/config/dtp.hpp" -#include "boost/mpl/aux_/config/nttp.hpp" +// Copyright Aleksey Gurtovoy 2001-2004 +// +// 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) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date$ +// $Revision$ + +#include -#if defined(BOOST_BROKEN_DEFAULT_TEMPLATE_PARAMETERS_IN_NESTED_TEMPLATES) +#if defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) -# include "boost/config.hpp" +# include +# include -namespace boost { -namespace mpl { -namespace aux { +namespace boost { namespace mpl { namespace aux { // agurt, 15/mar/02: it's possible to implement the template so that it will // "just work" and do not require any specialization, but not on the compilers @@ -37,10 +32,8 @@ struct arity BOOST_STATIC_CONSTANT(int, value = N); }; -} // namespace aux -} // namespace mpl -} // namespace boost +}}} -#endif // BOOST_BROKEN_DEFAULT_TEMPLATE_PARAMETERS_IN_NESTED_TEMPLATES +#endif // BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES #endif // BOOST_MPL_AUX_ARITY_HPP_INCLUDED diff --git a/deal.II/contrib/boost/include/boost/mpl/aux_/config/dtp.hpp b/deal.II/contrib/boost/include/boost/mpl/aux_/config/dtp.hpp index d6bfb3b43a..568bef64ba 100644 --- a/deal.II/contrib/boost/include/boost/mpl/aux_/config/dtp.hpp +++ b/deal.II/contrib/boost/include/boost/mpl/aux_/config/dtp.hpp @@ -1,23 +1,20 @@ -//----------------------------------------------------------------------------- -// boost mpl/aux_/config/dtp.hpp header file -// See http://www.boost.org for updates, documentation, and revision history. -//----------------------------------------------------------------------------- -// -// Copyright (c) 2001-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. #ifndef BOOST_MPL_AUX_CONFIG_DTP_HPP_INCLUDED #define BOOST_MPL_AUX_CONFIG_DTP_HPP_INCLUDED -#include "boost/config.hpp" +// Copyright Aleksey Gurtovoy 2001-2004 +// +// 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) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date$ +// $Revision$ + +#include // MWCW 7.x-8.0 "losts" default template parameters of nested class // templates when their owner classes are passed as arguments to other @@ -25,17 +22,25 @@ // the owner class is a class template), and Borland 5.6 isn't even // able to compile a definition of nested class template with DTP -#if defined(__BORLANDC__) && __BORLANDC__ >= 0x560 && \ - (__BORLANDC__ <= 0x561 || !defined(BOOST_STRICT_CONFIG)) \ - && !defined(BOOST_NO_DEFAULT_TEMPLATE_PARAMETERS_IN_NESTED_TEMPLATES) -# define BOOST_NO_DEFAULT_TEMPLATE_PARAMETERS_IN_NESTED_TEMPLATES +#if !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) \ + && !defined(BOOST_MPL_PREPROCESSING_MODE) \ + && BOOST_WORKAROUND(__BORLANDC__, >= 0x560) \ + && BOOST_WORKAROUND(__BORLANDC__, < 0x600) + +# define BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES + #endif -#if defined(__MWERKS__) && __MWERKS__ <= 0x3001 \ - || defined(__BORLANDC__) && (__BORLANDC__ <= 0x570 || !defined(BOOST_STRICT_CONFIG)) \ - || defined(BOOST_NO_DEFAULT_TEMPLATE_PARAMETERS_IN_NESTED_TEMPLATES) \ - && !defined(BOOST_BROKEN_DEFAULT_TEMPLATE_PARAMETERS_IN_NESTED_TEMPLATES) -# define BOOST_BROKEN_DEFAULT_TEMPLATE_PARAMETERS_IN_NESTED_TEMPLATES + +#if !defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) \ + && !defined(BOOST_MPL_PREPROCESSING_MODE) \ + && ( BOOST_WORKAROUND(__MWERKS__, <= 0x3001) \ + || BOOST_WORKAROUND(__BORLANDC__, < 0x600) \ + || defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) \ + ) + +# define BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES + #endif #endif // BOOST_MPL_AUX_CONFIG_DTP_HPP_INCLUDED diff --git a/deal.II/contrib/boost/include/boost/mpl/aux_/config/eti.hpp b/deal.II/contrib/boost/include/boost/mpl/aux_/config/eti.hpp index 70006b5a46..8166f89f4e 100644 --- a/deal.II/contrib/boost/include/boost/mpl/aux_/config/eti.hpp +++ b/deal.II/contrib/boost/include/boost/mpl/aux_/config/eti.hpp @@ -1,30 +1,47 @@ -//----------------------------------------------------------------------------- -// boost mpl/aux_/config/eti.hpp header file -// See http://www.boost.org for updates, documentation, and revision history. -//----------------------------------------------------------------------------- -// -// Copyright (c) 2001-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. #ifndef BOOST_MPL_AUX_CONFIG_ETI_HPP_INCLUDED #define BOOST_MPL_AUX_CONFIG_ETI_HPP_INCLUDED -#include "boost/config.hpp" +// Copyright Aleksey Gurtovoy 2001-2004 +// +// 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) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date$ +// $Revision$ + +#include +#include // flags for MSVC 6.5's so-called "early template instantiation bug" -#if defined(BOOST_MSVC) && BOOST_MSVC <= 1300 -# if BOOST_MSVC < 1300 -# define BOOST_MPL_MSVC_60_ETI_BUG -# endif -# define BOOST_MPL_MSVC_ETI_BUG +#if !defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG) \ + && !defined(BOOST_MPL_PREPROCESSING_MODE) \ + && BOOST_WORKAROUND(BOOST_MSVC, < 1300) + +# define BOOST_MPL_CFG_MSVC_60_ETI_BUG + +#endif + +#if !defined(BOOST_MPL_CFG_MSVC_70_ETI_BUG) \ + && !defined(BOOST_MPL_PREPROCESSING_MODE) \ + && BOOST_WORKAROUND(BOOST_MSVC, == 1300) + +# define BOOST_MPL_CFG_MSVC_70_ETI_BUG + +#endif + +#if !defined(BOOST_MPL_CFG_MSVC_ETI_BUG) \ + && !defined(BOOST_MPL_PREPROCESSING_MODE) \ + && ( defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG) \ + || defined(BOOST_MPL_CFG_MSVC_70_ETI_BUG) \ + ) + +# define BOOST_MPL_CFG_MSVC_ETI_BUG + #endif #endif // BOOST_MPL_AUX_CONFIG_ETI_HPP_INCLUDED diff --git a/deal.II/contrib/boost/include/boost/mpl/aux_/config/lambda.hpp b/deal.II/contrib/boost/include/boost/mpl/aux_/config/lambda.hpp index 50630b0c55..604afe9ec9 100644 --- a/deal.II/contrib/boost/include/boost/mpl/aux_/config/lambda.hpp +++ b/deal.II/contrib/boost/include/boost/mpl/aux_/config/lambda.hpp @@ -1,35 +1,32 @@ -//----------------------------------------------------------------------------- -// boost mpl/aux_/config/lambda.hpp header file -// See http://www.boost.org for updates, documentation, and revision history. -//----------------------------------------------------------------------------- -// -// Copyright (c) 2002 -// 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. #ifndef BOOST_MPL_AUX_CONFIG_LAMBDA_HPP_INCLUDED #define BOOST_MPL_AUX_CONFIG_LAMBDA_HPP_INCLUDED -#include "boost/mpl/aux_/config/ttp.hpp" -#include "boost/config.hpp" +// Copyright Aleksey Gurtovoy 2002-2004 +// +// 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) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date$ +// $Revision$ + +#include +#include // agurt, 15/jan/02: full-fledged implementation requires both // template template parameters _and_ partial specialization -#if defined(BOOST_NO_TEMPLATE_TEMPLATE_PARAMETERS) \ - || defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ - && !defined(BOOST_MPL_NO_FULL_LAMBDA_SUPPORT) -# define BOOST_MPL_NO_FULL_LAMBDA_SUPPORT -#endif +#if !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) \ + && ( defined(BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS) \ + || defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ + ) -//#define BOOST_MPL_NO_UNNAMED_PLACEHOLDER_SUPPORT -//#define BOOST_MPL_NO_LAMBDA_HEURISTIC +# define BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT + +#endif #endif // BOOST_MPL_AUX_CONFIG_LAMBDA_HPP_INCLUDED diff --git a/deal.II/contrib/boost/include/boost/mpl/aux_/config/msvc.hpp b/deal.II/contrib/boost/include/boost/mpl/aux_/config/msvc.hpp index aa559ca475..5dc63bc656 100644 --- a/deal.II/contrib/boost/include/boost/mpl/aux_/config/msvc.hpp +++ b/deal.II/contrib/boost/include/boost/mpl/aux_/config/msvc.hpp @@ -1,23 +1,21 @@ -//----------------------------------------------------------------------------- -// boost mpl/aux_/config/msvc.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. #ifndef BOOST_MPL_AUX_CONFIG_MSVC_HPP_INCLUDED #define BOOST_MPL_AUX_CONFIG_MSVC_HPP_INCLUDED +// Copyright Aleksey Gurtovoy 2002-2004 +// +// 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) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date$ +// $Revision$ + + // BOOST_MSVC is defined here: -#include "boost/config.hpp" +#include #endif // BOOST_MPL_AUX_CONFIG_MSVC_HPP_INCLUDED diff --git a/deal.II/contrib/boost/include/boost/mpl/aux_/config/nttp.hpp b/deal.II/contrib/boost/include/boost/mpl/aux_/config/nttp.hpp index 9f35c2a57f..d273d63c08 100644 --- a/deal.II/contrib/boost/include/boost/mpl/aux_/config/nttp.hpp +++ b/deal.II/contrib/boost/include/boost/mpl/aux_/config/nttp.hpp @@ -1,25 +1,24 @@ -//----------------------------------------------------------------------------- -// boost mpl/aux_/config/nttp.hpp header file -// See http://www.boost.org for updates, documentation, and revision history. -//----------------------------------------------------------------------------- -// -// Copyright (c) 2001-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. #ifndef BOOST_MPL_AUX_CONFIG_NTTP_HPP_INCLUDED #define BOOST_MPL_AUX_CONFIG_NTTP_HPP_INCLUDED -#include "boost/mpl/aux_/config/msvc.hpp" +// Copyright Aleksey Gurtovoy 2001-2004 +// +// 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) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date$ +// $Revision$ + +#include +#include -// MSVC 6.5 ICE-s on the code as simple as this: +// MSVC 6.5 ICE-s on the code as simple as this (see "aux_/nttp_decl.hpp" +// for a workaround): // // namespace std { // template< typename Char > struct string; @@ -30,27 +29,13 @@ // namespace boost { namespace mpl { // template< int > struct arg; // }} -// -// fortunately, a workaround is simple as well: -// -// typedef int nttp_int; -// template< nttp_int > struct arg; - -#if defined(BOOST_MSVC) && BOOST_MSVC < 1300 -#include "boost/preprocessor/cat.hpp" - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -namespace boost { namespace mpl { -typedef int nttp_int; -typedef long nttp_long; -}} -#endif +#if !defined(BOOST_MPL_CFG_NTTP_BUG) \ + && !defined(BOOST_MPL_PREPROCESSING_MODE) \ + && BOOST_WORKAROUND(BOOST_MSVC, < 1300) -# define BOOST_MPL_AUX_NTTP_DECL(T, x) BOOST_PP_CAT(nttp_,T) x /**/ +# define BOOST_MPL_CFG_NTTP_BUG -#else -# define BOOST_MPL_AUX_NTTP_DECL(T, x) T x /**/ #endif #endif // BOOST_MPL_AUX_CONFIG_NTTP_HPP_INCLUDED diff --git a/deal.II/contrib/boost/include/boost/mpl/aux_/config/overload_resolution.hpp b/deal.II/contrib/boost/include/boost/mpl/aux_/config/overload_resolution.hpp index 009ccc821c..a7618ab797 100644 --- a/deal.II/contrib/boost/include/boost/mpl/aux_/config/overload_resolution.hpp +++ b/deal.II/contrib/boost/include/boost/mpl/aux_/config/overload_resolution.hpp @@ -1,28 +1,29 @@ -//----------------------------------------------------------------------------- -// boost mpl/aux_/config/overload_resolution.hpp header file -// See http://www.boost.org for updates, documentation, and revision history. -//----------------------------------------------------------------------------- -// -// Copyright (c) 2002 -// 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. #ifndef BOOST_MPL_AUX_CONFIG_OVERLOAD_RESOLUTION_HPP_INCLUDED #define BOOST_MPL_AUX_CONFIG_OVERLOAD_RESOLUTION_HPP_INCLUDED -#include "boost/config.hpp" +// Copyright Aleksey Gurtovoy 2002-2004 +// +// 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) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date$ +// $Revision$ + +#include + +#if !defined(BOOST_MPL_CFG_BROKEN_OVERLOAD_RESOLUTION) \ + && !defined(BOOST_MPL_PREPROCESSING_MODE) \ + && ( BOOST_WORKAROUND(__BORLANDC__, < 0x600) \ + || BOOST_WORKAROUND(__MWERKS__, < 0x3001) \ + ) + +# define BOOST_MPL_CFG_BROKEN_OVERLOAD_RESOLUTION -#if defined(__BORLANDC__) && (__BORLANDC__ <= 0x561 || !defined(BOOST_STRICT_CONFIG)) \ - || defined(__MWERKS__) && __MWERKS__ < 0x3001 \ - && !defined(BOOST_MPL_BROKEN_OVERLOAD_RESOLUTION) -# define BOOST_MPL_BROKEN_OVERLOAD_RESOLUTION #endif #endif // BOOST_MPL_AUX_CONFIG_OVERLOAD_RESOLUTION_HPP_INCLUDED diff --git a/deal.II/contrib/boost/include/boost/mpl/aux_/config/preprocessor.hpp b/deal.II/contrib/boost/include/boost/mpl/aux_/config/preprocessor.hpp index 66cef48846..0acd76ee86 100644 --- a/deal.II/contrib/boost/include/boost/mpl/aux_/config/preprocessor.hpp +++ b/deal.II/contrib/boost/include/boost/mpl/aux_/config/preprocessor.hpp @@ -1,30 +1,39 @@ -//----------------------------------------------------------------------------- -// boost mpl/aux_/config/preprocessor.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. #ifndef BOOST_MPL_AUX_CONFIG_PREPROCESSOR_HPP_INCLUDED #define BOOST_MPL_AUX_CONFIG_PREPROCESSOR_HPP_INCLUDED -#include "boost/config.hpp" +// Copyright Aleksey Gurtovoy 2000-2004 +// +// 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) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date$ +// $Revision$ + +#include + +#if !defined(BOOST_MPL_CFG_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_CFG_BROKEN_PP_MACRO_EXPANSION + +#endif + +#if !defined(BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES) +# define BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES +#endif -#if defined(__MWERKS__) && (__MWERKS__ <= 0x3003 || !defined(BOOST_STRICT_CONFIG)) \ - || defined(__BORLANDC__) && (__BORLANDC__ <= 0x561 || !defined(BOOST_STRICT_CONFIG)) \ - || defined(__IBMCPP__) && (__IBMCPP__ <= 502 || !defined(BOOST_STRICT_CONFIG)) -# define BOOST_MPL_BROKEN_PP_MACRO_EXPANSION +#if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING) \ + && BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) +# define BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING #endif -//#define BOOST_MPL_NO_OWN_PP_PRIMITIVES #endif // BOOST_MPL_AUX_CONFIG_PREPROCESSOR_HPP_INCLUDED diff --git a/deal.II/contrib/boost/include/boost/mpl/aux_/config/static_constant.hpp b/deal.II/contrib/boost/include/boost/mpl/aux_/config/static_constant.hpp index ae94fc63e9..43a7ffb107 100644 --- a/deal.II/contrib/boost/include/boost/mpl/aux_/config/static_constant.hpp +++ b/deal.II/contrib/boost/include/boost/mpl/aux_/config/static_constant.hpp @@ -1,25 +1,25 @@ -//----------------------------------------------------------------------------- -// boost mpl/aux_/config/static_constant.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. #ifndef BOOST_MPL_AUX_CONFIG_STATIC_CONSTANT_HPP_INCLUDED #define BOOST_MPL_AUX_CONFIG_STATIC_CONSTANT_HPP_INCLUDED +// Copyright Aleksey Gurtovoy 2000-2004 +// +// 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) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date$ +// $Revision$ + #if !defined(BOOST_MPL_PREPROCESSING_MODE) // BOOST_STATIC_CONSTANT is defined here: -# include "boost/config.hpp" +# include +#else +// undef the macro for the preprocessing mode +# undef BOOST_STATIC_CONSTANT #endif #endif // BOOST_MPL_AUX_CONFIG_STATIC_CONSTANT_HPP_INCLUDED diff --git a/deal.II/contrib/boost/include/boost/mpl/aux_/config/ttp.hpp b/deal.II/contrib/boost/include/boost/mpl/aux_/config/ttp.hpp index 29f1fc620a..88c38d6410 100644 --- a/deal.II/contrib/boost/include/boost/mpl/aux_/config/ttp.hpp +++ b/deal.II/contrib/boost/include/boost/mpl/aux_/config/ttp.hpp @@ -1,34 +1,39 @@ -//----------------------------------------------------------------------------- -// boost mpl/aux_/config/ttp.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. #ifndef BOOST_MPL_AUX_CONFIG_TTP_HPP_INCLUDED #define BOOST_MPL_AUX_CONFIG_TTP_HPP_INCLUDED -#include "boost/config.hpp" +// Copyright Aleksey Gurtovoy 2000-2004 +// +// 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) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date$ +// $Revision$ + +#include +#include +#include + +#if !defined(BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS) \ + && defined(BOOST_NO_TEMPLATE_TEMPLATES) + +# define BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS -#if defined(BOOST_NO_TEMPLATE_TEMPLATES) \ - && (!defined(BOOST_MSVC) || BOOST_MSVC < 1300) -# define BOOST_NO_TEMPLATE_TEMPLATE_PARAMETERS #endif -#if defined(__GNUC__) && (__GNUC__ < 3 || __GNUC__ == 3 && __GNUC_MINOR__ <= 2 \ - || !defined(BOOST_STRICT_CONFIG)) \ - || defined(__BORLANDC__) && (__BORLANDC__ <= 0x561 || !defined(BOOST_STRICT_CONFIG)) \ - && !defined(BOOST_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) -# define BOOST_EXTENDED_TEMPLATE_PARAMETERS_MATCHING + +#if !defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) \ + && !defined(BOOST_MPL_PREPROCESSING_MODE) \ + && ( BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0302)) \ + || BOOST_WORKAROUND(__BORLANDC__, < 0x600) \ + ) + +# define BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING + #endif #endif // BOOST_MPL_AUX_CONFIG_TTP_HPP_INCLUDED diff --git a/deal.II/contrib/boost/include/boost/mpl/aux_/config/workaround.hpp b/deal.II/contrib/boost/include/boost/mpl/aux_/config/workaround.hpp index dd3445629b..0e64dc74c3 100644 --- a/deal.II/contrib/boost/include/boost/mpl/aux_/config/workaround.hpp +++ b/deal.II/contrib/boost/include/boost/mpl/aux_/config/workaround.hpp @@ -1,22 +1,19 @@ -//----------------------------------------------------------------------------- -// boost mpl/aux_/config/workaround.hpp header file -// See http://www.boost.org for updates, documentation, and revision history. -//----------------------------------------------------------------------------- -// -// Copyright (c) 2002 -// 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. #ifndef BOOST_MPL_AUX_CONFIG_WORKAROUND_HPP_INCLUDED #define BOOST_MPL_AUX_CONFIG_WORKAROUND_HPP_INCLUDED -#include "boost/detail/workaround.hpp" +// Copyright Aleksey Gurtovoy 2002-2004 +// +// 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) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date$ +// $Revision$ + +#include #endif // BOOST_MPL_AUX_CONFIG_WORKAROUND_HPP_INCLUDED diff --git a/deal.II/contrib/boost/include/boost/mpl/aux_/integral_wrapper.hpp b/deal.II/contrib/boost/include/boost/mpl/aux_/integral_wrapper.hpp index 216ea3bbb9..fb381629e9 100644 --- a/deal.II/contrib/boost/include/boost/mpl/aux_/integral_wrapper.hpp +++ b/deal.II/contrib/boost/include/boost/mpl/aux_/integral_wrapper.hpp @@ -1,28 +1,25 @@ -// + file: boost/mpl/aux_/intergal_wrapper.hpp -// + last modified: 27/jan/03 - -// Copyright (c) 2000-03 -// Aleksey Gurtovoy +// Copyright Aleksey Gurtovoy 2000-2004 // -// 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. +// 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) // // See http://www.boost.org/libs/mpl for documentation. -// no include guards, the header is intended for multiple inclusion! +// $Source$ +// $Date$ +// $Revision$ + +// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION! -#include "boost/mpl/aux_/ice_cast.hpp" -#include "boost/mpl/aux_/config/nttp.hpp" -#include "boost/mpl/aux_/config/static_constant.hpp" -#include "boost/mpl/aux_/config/workaround.hpp" +#include +#include +#include +#include +#include -#include "boost/preprocessor/cat.hpp" +#include #if !defined(AUX_WRAPPER_NAME) # define AUX_WRAPPER_NAME BOOST_PP_CAT(AUX_WRAPPER_VALUE_TYPE,_) @@ -33,10 +30,14 @@ #endif #if !defined(AUX_WRAPPER_INST) -# define AUX_WRAPPER_INST(value) mpl::AUX_WRAPPER_NAME< value > +# if BOOST_WORKAROUND(__MWERKS__, <= 0x2407) +# define AUX_WRAPPER_INST(value) AUX_WRAPPER_NAME< value > +# else +# define AUX_WRAPPER_INST(value) BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::AUX_WRAPPER_NAME< value > +# endif #endif -namespace boost { namespace mpl { +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN template< AUX_WRAPPER_PARAMS(N) > struct AUX_WRAPPER_NAME @@ -50,35 +51,41 @@ struct AUX_WRAPPER_NAME typedef AUX_WRAPPER_NAME type; #endif typedef AUX_WRAPPER_VALUE_TYPE value_type; + typedef integral_c_tag tag; // have to #ifdef here: some compilers don't like the 'N + 1' form (MSVC), // while some other don't like 'value + 1' (Borland), and some don't like // either #if BOOST_WORKAROUND(__EDG_VERSION__, <= 243) private: - BOOST_STATIC_CONSTANT(AUX_WRAPPER_VALUE_TYPE, next_value = BOOST_MPL_AUX_ICE_CAST(AUX_WRAPPER_VALUE_TYPE, (N + 1))); - BOOST_STATIC_CONSTANT(AUX_WRAPPER_VALUE_TYPE, prior_value = BOOST_MPL_AUX_ICE_CAST(AUX_WRAPPER_VALUE_TYPE, (N - 1))); + BOOST_STATIC_CONSTANT(AUX_WRAPPER_VALUE_TYPE, next_value = BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (N + 1))); + BOOST_STATIC_CONSTANT(AUX_WRAPPER_VALUE_TYPE, prior_value = BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (N - 1))); public: typedef AUX_WRAPPER_INST(next_value) next; typedef AUX_WRAPPER_INST(prior_value) prior; #elif BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x561)) \ || BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(502)) \ || BOOST_WORKAROUND(__HP_aCC, BOOST_TESTED_AT(53800)) - typedef AUX_WRAPPER_INST( BOOST_MPL_AUX_ICE_CAST(AUX_WRAPPER_VALUE_TYPE, (N + 1)) ) next; - typedef AUX_WRAPPER_INST( BOOST_MPL_AUX_ICE_CAST(AUX_WRAPPER_VALUE_TYPE, (N - 1)) ) prior; + typedef AUX_WRAPPER_INST( BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (N + 1)) ) next; + typedef AUX_WRAPPER_INST( BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (N - 1)) ) prior; #else - typedef AUX_WRAPPER_INST( BOOST_MPL_AUX_ICE_CAST(AUX_WRAPPER_VALUE_TYPE, (value + 1)) ) next; - typedef AUX_WRAPPER_INST( BOOST_MPL_AUX_ICE_CAST(AUX_WRAPPER_VALUE_TYPE, (value - 1)) ) prior; + typedef AUX_WRAPPER_INST( BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (value + 1)) ) next; + typedef AUX_WRAPPER_INST( BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (value - 1)) ) prior; #endif // enables uniform function call syntax for families of overloaded // functions that return objects of both arithmetic ('int', 'long', // 'double', etc.) and wrapped integral types (for an example, see // "mpl/example/power.cpp") - operator AUX_WRAPPER_VALUE_TYPE() const { return this->value; } + operator AUX_WRAPPER_VALUE_TYPE() const { return static_cast(this->value); } }; -}} // namespace boost::mpl +#if !defined(BOOST_NO_INCLASS_MEMBER_INITIALIZATION) +template< AUX_WRAPPER_PARAMS(N) > +AUX_WRAPPER_VALUE_TYPE const AUX_WRAPPER_INST(N)::value; +#endif + +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE #undef AUX_WRAPPER_NAME #undef AUX_WRAPPER_PARAMS diff --git a/deal.II/contrib/boost/include/boost/mpl/aux_/lambda_arity_param.hpp b/deal.II/contrib/boost/include/boost/mpl/aux_/lambda_arity_param.hpp index 926e3a3dc0..f4c3e503e2 100644 --- a/deal.II/contrib/boost/include/boost/mpl/aux_/lambda_arity_param.hpp +++ b/deal.II/contrib/boost/include/boost/mpl/aux_/lambda_arity_param.hpp @@ -1,25 +1,22 @@ -//----------------------------------------------------------------------------- -// boost mpl/aux_/lambda_arity_param.hpp header file -// See http://www.boost.org for updates, documentation, and revision history. -//----------------------------------------------------------------------------- -// -// Copyright (c) 2001-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. #ifndef BOOST_MPL_AUX_LAMBDA_ARITY_PARAM_HPP_INCLUDED #define BOOST_MPL_AUX_LAMBDA_ARITY_PARAM_HPP_INCLUDED -#include "boost/mpl/aux_/config/ttp.hpp" +// Copyright Aleksey Gurtovoy 2001-2004 +// +// 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) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date$ +// $Revision$ + +#include -#if !defined(BOOST_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) +#if !defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) # define BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(param) #else # define BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(param) , param diff --git a/deal.II/contrib/boost/include/boost/mpl/aux_/lambda_support.hpp b/deal.II/contrib/boost/include/boost/mpl/aux_/lambda_support.hpp index 0a174da45f..5d67d2a540 100644 --- a/deal.II/contrib/boost/include/boost/mpl/aux_/lambda_support.hpp +++ b/deal.II/contrib/boost/include/boost/mpl/aux_/lambda_support.hpp @@ -1,37 +1,40 @@ -//----------------------------------------------------------------------------- -// boost mpl/aux_/lambda_support.hpp header file -// See http://www.boost.org for updates, documentation, and revision history. -//----------------------------------------------------------------------------- -// -// Copyright (c) 2001-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. #ifndef BOOST_MPL_AUX_LAMBDA_SUPPORT_HPP_INCLUDED #define BOOST_MPL_AUX_LAMBDA_SUPPORT_HPP_INCLUDED -#include "boost/mpl/aux_/config/lambda.hpp" +// Copyright Aleksey Gurtovoy 2001-2004 +// +// 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) +// +// See http://www.boost.org/libs/mpl for documentation. -#if !defined(BOOST_MPL_NO_FULL_LAMBDA_SUPPORT) +// $Source$ +// $Date$ +// $Revision$ + +#include + +#if !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) # define BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) /**/ # define BOOST_MPL_AUX_LAMBDA_SUPPORT(i,name,params) /**/ #else -# include "boost/mpl/aux_/config/workaround.hpp" -# include "boost/mpl/aux_/preprocessor/params.hpp" -# include "boost/preprocessor/tuple/to_list.hpp" -# include "boost/preprocessor/list/for_each_i.hpp" -# include "boost/preprocessor/inc.hpp" -# include "boost/preprocessor/cat.hpp" +# include +# include +# include +# include +# include +# include +# include + +# include +# include +# include +# include # define BOOST_MPL_AUX_LAMBDA_SUPPORT_ARG_TYPEDEF_FUNC(R,typedef_,i,param) \ typedef_ param BOOST_PP_CAT(arg,BOOST_PP_INC(i)); \ @@ -41,7 +44,7 @@ #if BOOST_WORKAROUND(__EDG_VERSION__, <= 238) # define BOOST_MPL_AUX_LAMBDA_SUPPORT(i, name, params) \ - BOOST_STATIC_CONSTANT(int, arity = i); \ + typedef BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::int_ arity; \ BOOST_PP_LIST_FOR_EACH_I_R( \ 1 \ , BOOST_MPL_AUX_LAMBDA_SUPPORT_ARG_TYPEDEF_FUNC \ @@ -67,7 +70,7 @@ // MSVC-optimized implementation # define BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \ - BOOST_STATIC_CONSTANT(int, arity = i); \ + typedef BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::int_ arity; \ BOOST_PP_LIST_FOR_EACH_I_R( \ 1 \ , BOOST_MPL_AUX_LAMBDA_SUPPORT_ARG_TYPEDEF_FUNC \ @@ -91,8 +94,12 @@ struct name::rebind \ #else // __EDG_VERSION__ +namespace boost { namespace mpl { namespace aux { +template< typename T > struct has_rebind_tag; +}}} + # define BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \ - BOOST_STATIC_CONSTANT(int, arity = i); \ + typedef BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::int_ arity; \ BOOST_PP_LIST_FOR_EACH_I_R( \ 1 \ , BOOST_MPL_AUX_LAMBDA_SUPPORT_ARG_TYPEDEF_FUNC \ @@ -103,10 +110,35 @@ struct name::rebind \ typedef BOOST_PP_CAT(name,_rebind) rebind; \ /**/ +#if BOOST_WORKAROUND(__BORLANDC__, < 0x600) +# define BOOST_MPL_AUX_LAMBDA_SUPPORT_HAS_REBIND(i, name, params) \ +template< BOOST_MPL_PP_PARAMS(i,typename T) > \ +::boost::mpl::aux::yes_tag operator|( \ + ::boost::mpl::aux::has_rebind_tag \ + , name* \ + ); \ +::boost::mpl::aux::no_tag operator|( \ + ::boost::mpl::aux::has_rebind_tag \ + , name< BOOST_MPL_PP_ENUM(i,::boost::mpl::na) >* \ + ); \ +/**/ +#elif !BOOST_WORKAROUND(BOOST_MSVC, <= 1200) +# define BOOST_MPL_AUX_LAMBDA_SUPPORT_HAS_REBIND(i, name, params) \ +template< BOOST_MPL_PP_PARAMS(i,typename T) > \ +::boost::mpl::aux::yes_tag operator|( \ + ::boost::mpl::aux::has_rebind_tag \ + , ::boost::mpl::aux::has_rebind_tag< name >* \ + ); \ +/**/ +#else +# define BOOST_MPL_AUX_LAMBDA_SUPPORT_HAS_REBIND(i, name, params) /**/ +#endif + # if !defined(__BORLANDC__) # define BOOST_MPL_AUX_LAMBDA_SUPPORT(i, name, params) \ BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \ }; \ +BOOST_MPL_AUX_LAMBDA_SUPPORT_HAS_REBIND(i, name, params) \ class BOOST_PP_CAT(name,_rebind) \ { \ public: \ @@ -119,6 +151,7 @@ class BOOST_PP_CAT(name,_rebind) \ # define BOOST_MPL_AUX_LAMBDA_SUPPORT(i, name, params) \ BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \ }; \ +BOOST_MPL_AUX_LAMBDA_SUPPORT_HAS_REBIND(i, name, params) \ class BOOST_PP_CAT(name,_rebind) \ { \ public: \ @@ -131,6 +164,6 @@ class BOOST_PP_CAT(name,_rebind) \ #endif // __EDG_VERSION__ -#endif // BOOST_MPL_NO_FULL_LAMBDA_SUPPORT +#endif // BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT #endif // BOOST_MPL_AUX_LAMBDA_SUPPORT_HPP_INCLUDED diff --git a/deal.II/contrib/boost/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp b/deal.II/contrib/boost/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp index c8e564cbbc..26763a290b 100644 --- a/deal.II/contrib/boost/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp +++ b/deal.II/contrib/boost/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp @@ -1,44 +1,41 @@ -//----------------------------------------------------------------------------- -// boost mpl/aux_/preprocessor/def_params_tail.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. #ifndef BOOST_MPL_AUX_PREPROCESSOR_DEF_PARAMS_TAIL_HPP_INCLUDED #define BOOST_MPL_AUX_PREPROCESSOR_DEF_PARAMS_TAIL_HPP_INCLUDED -#include "boost/mpl/limits/arity.hpp" -#include "boost/mpl/aux_/config/dtp.hpp" -#include "boost/mpl/aux_/config/preprocessor.hpp" +// Copyright Aleksey Gurtovoy 2000-2004 +// +// 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) +// +// See http://www.boost.org/libs/mpl for documentation. -#include "boost/preprocessor/comma_if.hpp" -#include "boost/preprocessor/logical/and.hpp" -#include "boost/preprocessor/identity.hpp" -#include "boost/preprocessor/empty.hpp" +// $Source$ +// $Date$ +// $Revision$ -// BOOST_MPL_PP_DEF_PARAMS_TAIL(1,T): , T1 = void_, .., Tn = void_ -// BOOST_MPL_PP_DEF_PARAMS_TAIL(2,T): , T2 = void_, .., Tn = void_ -// BOOST_MPL_PP_DEF_PARAMS_TAIL(n,T): +#include +#include +#include -#if !defined(BOOST_MPL_NO_OWN_PP_PRIMITIVES) +#include +#include +#include +#include -# include "boost/mpl/aux_/preprocessor/filter_params.hpp" -# include "boost/mpl/aux_/preprocessor/sub.hpp" +// BOOST_MPL_PP_DEF_PARAMS_TAIL(1,T,value): , T1 = value, .., Tn = value +// BOOST_MPL_PP_DEF_PARAMS_TAIL(2,T,value): , T2 = value, .., Tn = value +// BOOST_MPL_PP_DEF_PARAMS_TAIL(n,T,value): + +#if !defined(BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES) + +# include +# include # define BOOST_MPL_PP_DEF_PARAMS_TAIL_IMPL(i, param, value_func) \ BOOST_MPL_PP_DEF_PARAMS_TAIL_DELAY_1( \ i \ - , BOOST_MPL_PP_SUB(BOOST_MPL_METAFUNCTION_MAX_ARITY,i) \ + , BOOST_MPL_PP_SUB(BOOST_MPL_LIMIT_METAFUNCTION_ARITY,i) \ , param \ , value_func \ ) \ @@ -66,36 +63,36 @@ #else -# include "boost/preprocessor/arithmetic/add.hpp" -# include "boost/preprocessor/arithmetic/sub.hpp" -# include "boost/preprocessor/inc.hpp" -# include "boost/preprocessor/tuple/elem.hpp" -# include "boost/preprocessor/repeat.hpp" -# include "boost/preprocessor/cat.hpp" +# include +# include +# include +# include +# include +# include # define BOOST_MPL_PP_AUX_TAIL_PARAM_FUNC(unused, i, op) \ - BOOST_PP_COMMA_IF(i) \ - BOOST_PP_CAT( \ + , BOOST_PP_CAT( \ BOOST_PP_TUPLE_ELEM(3, 1, op) \ , BOOST_PP_ADD_D(1, i, BOOST_PP_INC(BOOST_PP_TUPLE_ELEM(3, 0, op))) \ ) BOOST_PP_TUPLE_ELEM(3, 2, op)() \ /**/ # define BOOST_MPL_PP_DEF_PARAMS_TAIL_IMPL(i, param, value_func) \ - BOOST_PP_REPEAT_1( \ - BOOST_PP_SUB_D(1, BOOST_MPL_METAFUNCTION_MAX_ARITY, i) \ + BOOST_PP_REPEAT( \ + BOOST_PP_SUB_D(1, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, i) \ , BOOST_MPL_PP_AUX_TAIL_PARAM_FUNC \ , (i, param, value_func) \ ) \ /**/ -#endif // BOOST_MPL_NO_OWN_PP_PRIMITIVES + +#endif // BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES #define BOOST_MPL_PP_DEF_PARAMS_TAIL(i, param, value) \ BOOST_MPL_PP_DEF_PARAMS_TAIL_IMPL(i, param, BOOST_PP_IDENTITY(=value)) \ /**/ -#if !defined(BOOST_NO_DEFAULT_TEMPLATE_PARAMETERS_IN_NESTED_TEMPLATES) +#if !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) # define BOOST_MPL_PP_NESTED_DEF_PARAMS_TAIL(i, param, value) \ BOOST_MPL_PP_DEF_PARAMS_TAIL_IMPL(i, param, BOOST_PP_IDENTITY(=value)) \ /**/ diff --git a/deal.II/contrib/boost/include/boost/mpl/aux_/preprocessor/enum.hpp b/deal.II/contrib/boost/include/boost/mpl/aux_/preprocessor/enum.hpp index 829787574a..6a2a84c54c 100644 --- a/deal.II/contrib/boost/include/boost/mpl/aux_/preprocessor/enum.hpp +++ b/deal.II/contrib/boost/include/boost/mpl/aux_/preprocessor/enum.hpp @@ -1,32 +1,29 @@ -//----------------------------------------------------------------------------- -// boost mpl/aux_/preprocessor/enum.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. #ifndef BOOST_MPL_AUX_PREPROCESSOR_ENUM_HPP_INCLUDED #define BOOST_MPL_AUX_PREPROCESSOR_ENUM_HPP_INCLUDED -#include "boost/mpl/aux_/config/preprocessor.hpp" +// Copyright Aleksey Gurtovoy 2000-2004 +// +// 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) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date$ +// $Revision$ + +#include // BOOST_MPL_PP_ENUM(0,int): // BOOST_MPL_PP_ENUM(1,int): int // BOOST_MPL_PP_ENUM(2,int): int, int // BOOST_MPL_PP_ENUM(n,int): int, int, .., int -#if !defined(BOOST_MPL_NO_OWN_PP_PRIMITIVES) +#if !defined(BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES) -# include "boost/preprocessor/cat.hpp" +# include # define BOOST_MPL_PP_ENUM(n, param) \ BOOST_PP_CAT(BOOST_MPL_PP_ENUM_,n)(param) \ @@ -45,21 +42,21 @@ #else -# include "boost/preprocessor/comma_if.hpp" -# include "boost/preprocessor/repeat.hpp" +# include +# include # define BOOST_MPL_PP_AUX_ENUM_FUNC(unused, i, param) \ BOOST_PP_COMMA_IF(i) param \ /**/ # define BOOST_MPL_PP_ENUM(n, param) \ - BOOST_PP_REPEAT_1( \ + BOOST_PP_REPEAT( \ n \ , BOOST_MPL_PP_AUX_ENUM_FUNC \ , param \ ) \ /**/ -#endif // BOOST_MPL_NO_OWN_PP_PRIMITIVES +#endif #endif // BOOST_MPL_AUX_PREPROCESSOR_ENUM_HPP_INCLUDED diff --git a/deal.II/contrib/boost/include/boost/mpl/aux_/preprocessor/filter_params.hpp b/deal.II/contrib/boost/include/boost/mpl/aux_/preprocessor/filter_params.hpp index b6dc3f9eb9..de8a58b244 100644 --- a/deal.II/contrib/boost/include/boost/mpl/aux_/preprocessor/filter_params.hpp +++ b/deal.II/contrib/boost/include/boost/mpl/aux_/preprocessor/filter_params.hpp @@ -1,22 +1,19 @@ -//----------------------------------------------------------------------------- -// boost mpl/aux_/preprocessor/filter_params.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. #ifndef BOOST_MPL_AUX_PREPROCESSOR_FILTER_PARAMS_HPP_INCLUDED #define BOOST_MPL_AUX_PREPROCESSOR_FILTER_PARAMS_HPP_INCLUDED +// Copyright Aleksey Gurtovoy 2000-2004 +// +// 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) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date$ +// $Revision$ + #define BOOST_MPL_PP_FILTER_PARAMS_0(p1,p2,p3,p4,p5,p6,p7,p8,p9) #define BOOST_MPL_PP_FILTER_PARAMS_1(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1 #define BOOST_MPL_PP_FILTER_PARAMS_2(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2 diff --git a/deal.II/contrib/boost/include/boost/mpl/aux_/preprocessor/params.hpp b/deal.II/contrib/boost/include/boost/mpl/aux_/preprocessor/params.hpp index baaac7d825..7cec9ffe49 100644 --- a/deal.II/contrib/boost/include/boost/mpl/aux_/preprocessor/params.hpp +++ b/deal.II/contrib/boost/include/boost/mpl/aux_/preprocessor/params.hpp @@ -1,32 +1,29 @@ -//----------------------------------------------------------------------------- -// boost mpl/aux_/preprocessor/params.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. #ifndef BOOST_MPL_AUX_PREPROCESSOR_PARAMS_HPP_INCLUDED #define BOOST_MPL_AUX_PREPROCESSOR_PARAMS_HPP_INCLUDED -#include "boost/mpl/aux_/config/preprocessor.hpp" +// Copyright Aleksey Gurtovoy 2000-2004 +// +// 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) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date$ +// $Revision$ + +#include // BOOST_MPL_PP_PARAMS(0,T): // BOOST_MPL_PP_PARAMS(1,T): T1 // BOOST_MPL_PP_PARAMS(2,T): T1, T2 // BOOST_MPL_PP_PARAMS(n,T): T1, T2, .., Tn -#if !defined(BOOST_MPL_NO_OWN_PP_PRIMITIVES) +#if !defined(BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES) -# include "boost/preprocessor/cat.hpp" +# include # define BOOST_MPL_PP_PARAMS(n,p) \ BOOST_PP_CAT(BOOST_MPL_PP_PARAMS_,n)(p) \ @@ -45,10 +42,10 @@ #else -# include "boost/preprocessor/comma_if.hpp" -# include "boost/preprocessor/repeat.hpp" -# include "boost/preprocessor/inc.hpp" -# include "boost/preprocessor/cat.hpp" +# include +# include +# include +# include # define BOOST_MPL_PP_AUX_PARAM_FUNC(unused, i, param) \ BOOST_PP_COMMA_IF(i) \ @@ -56,13 +53,13 @@ /**/ # define BOOST_MPL_PP_PARAMS(n, param) \ - BOOST_PP_REPEAT_1( \ + BOOST_PP_REPEAT( \ n \ , BOOST_MPL_PP_AUX_PARAM_FUNC \ , param \ ) \ /**/ -#endif // BOOST_MPL_NO_OWN_PP_PRIMITIVES +#endif #endif // BOOST_MPL_AUX_PREPROCESSOR_PARAMS_HPP_INCLUDED diff --git a/deal.II/contrib/boost/include/boost/mpl/aux_/preprocessor/sub.hpp b/deal.II/contrib/boost/include/boost/mpl/aux_/preprocessor/sub.hpp index e16ffda062..93522cc3b2 100644 --- a/deal.II/contrib/boost/include/boost/mpl/aux_/preprocessor/sub.hpp +++ b/deal.II/contrib/boost/include/boost/mpl/aux_/preprocessor/sub.hpp @@ -1,27 +1,27 @@ -//----------------------------------------------------------------------------- -// boost mpl/aux_/preprocessor/sub.hpp header file -// See http://www.boost.org for updates, documentation, and revision history. -//----------------------------------------------------------------------------- -// -// Copyright (c) 2002 -// 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. #ifndef BOOST_MPL_AUX_PREPROCESSOR_SUB_HPP_INCLUDED #define BOOST_MPL_AUX_PREPROCESSOR_SUB_HPP_INCLUDED -#include "boost/mpl/aux_/preprocessor/tuple.hpp" -#include "boost/mpl/aux_/config/preprocessor.hpp" +// Copyright Aleksey Gurtovoy 2002-2004 +// +// 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) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date$ +// $Revision$ + +#include + +#if !defined(BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES) + +# include -#if defined(BOOST_MPL_BROKEN_PP_MACRO_EXPANSION) -# include "boost/preprocessor/cat.hpp" +#if defined(BOOST_MPL_CFG_BROKEN_PP_MACRO_EXPANSION) +# include # define BOOST_MPL_PP_SUB(i,j) \ BOOST_MPL_PP_SUB_DELAY(i,j) \ @@ -38,18 +38,28 @@ # define BOOST_MPL_PP_SUB_DELAY(i,j) \ BOOST_MPL_PP_TUPLE_11_ELEM_##i BOOST_MPL_PP_SUB_##j \ /**/ -#endif // BOOST_MPL_BROKEN_PP_MACRO_EXPANSION - -#define BOOST_MPL_PP_SUB_0 (0,1,2,3,4,5,6,7,8,9,10) -#define BOOST_MPL_PP_SUB_1 (0,0,1,2,3,4,5,6,7,8,9) -#define BOOST_MPL_PP_SUB_2 (0,0,0,1,2,3,4,5,6,7,8) -#define BOOST_MPL_PP_SUB_3 (0,0,0,0,1,2,3,4,5,6,7) -#define BOOST_MPL_PP_SUB_4 (0,0,0,0,0,1,2,3,4,5,6) -#define BOOST_MPL_PP_SUB_5 (0,0,0,0,0,0,1,2,3,4,5) -#define BOOST_MPL_PP_SUB_6 (0,0,0,0,0,0,0,1,2,3,4) -#define BOOST_MPL_PP_SUB_7 (0,0,0,0,0,0,0,0 1,2,3) -#define BOOST_MPL_PP_SUB_8 (0,0,0,0,0,0,0,0,0,1,2) -#define BOOST_MPL_PP_SUB_9 (0,0,0,0,0,0,0,0,0,0,1) -#define BOOST_MPL_PP_SUB_10 (0,0,0,0,0,0,0,0,0,0,0) +#endif + +# define BOOST_MPL_PP_SUB_0 (0,1,2,3,4,5,6,7,8,9,10) +# define BOOST_MPL_PP_SUB_1 (0,0,1,2,3,4,5,6,7,8,9) +# define BOOST_MPL_PP_SUB_2 (0,0,0,1,2,3,4,5,6,7,8) +# define BOOST_MPL_PP_SUB_3 (0,0,0,0,1,2,3,4,5,6,7) +# define BOOST_MPL_PP_SUB_4 (0,0,0,0,0,1,2,3,4,5,6) +# define BOOST_MPL_PP_SUB_5 (0,0,0,0,0,0,1,2,3,4,5) +# define BOOST_MPL_PP_SUB_6 (0,0,0,0,0,0,0,1,2,3,4) +# define BOOST_MPL_PP_SUB_7 (0,0,0,0,0,0,0,0,1,2,3) +# define BOOST_MPL_PP_SUB_8 (0,0,0,0,0,0,0,0,0,1,2) +# define BOOST_MPL_PP_SUB_9 (0,0,0,0,0,0,0,0,0,0,1) +# define BOOST_MPL_PP_SUB_10 (0,0,0,0,0,0,0,0,0,0,0) + +#else + +# include + +# define BOOST_MPL_PP_SUB(i,j) \ + BOOST_PP_SUB(i,j) \ + /**/ + +#endif #endif // BOOST_MPL_AUX_PREPROCESSOR_SUB_HPP_INCLUDED diff --git a/deal.II/contrib/boost/include/boost/mpl/aux_/template_arity_fwd.hpp b/deal.II/contrib/boost/include/boost/mpl/aux_/template_arity_fwd.hpp index 6cb409ec4a..087010d237 100644 --- a/deal.II/contrib/boost/include/boost/mpl/aux_/template_arity_fwd.hpp +++ b/deal.II/contrib/boost/include/boost/mpl/aux_/template_arity_fwd.hpp @@ -1,30 +1,23 @@ -//----------------------------------------------------------------------------- -// boost mpl/aux_/template_arity_fwd.hpp header file -// See http://www.boost.org for updates, documentation, and revision history. -//----------------------------------------------------------------------------- -// -// Copyright (c) 2001-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. #ifndef BOOST_MPL_AUX_TEMPLATE_ARITY_FWD_HPP_INCLUDED #define BOOST_MPL_AUX_TEMPLATE_ARITY_FWD_HPP_INCLUDED -namespace boost { -namespace mpl { -namespace aux { +// Copyright Aleksey Gurtovoy 2001-2004 +// +// 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) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date$ +// $Revision$ + +namespace boost { namespace mpl { namespace aux { template< typename F > struct template_arity; -} // namespace aux -} // namespace mpl -} // namespace boost +}}} #endif // BOOST_MPL_AUX_TEMPLATE_ARITY_FWD_HPP_INCLUDED diff --git a/deal.II/contrib/boost/include/boost/mpl/aux_/value_wknd.hpp b/deal.II/contrib/boost/include/boost/mpl/aux_/value_wknd.hpp index f0676d97f8..90aecec046 100644 --- a/deal.II/contrib/boost/include/boost/mpl/aux_/value_wknd.hpp +++ b/deal.II/contrib/boost/include/boost/mpl/aux_/value_wknd.hpp @@ -1,60 +1,89 @@ -//----------------------------------------------------------------------------- -// boost mpl/aux_/value_wknd.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. #ifndef BOOST_MPL_AUX_VALUE_WKND_HPP_INCLUDED #define BOOST_MPL_AUX_VALUE_WKND_HPP_INCLUDED -#include "boost/mpl/aux_/config/eti.hpp" +// Copyright Aleksey Gurtovoy 2000-2004 +// +// 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) +// +// See http://www.boost.org/libs/mpl for documentation. -#if defined(__BORLANDC__) && (__BORLANDC__ <= 0x561 || !defined(BOOST_STRICT_CONFIG)) \ - || defined(BOOST_MPL_MSVC_60_ETI_BUG) - -# include "boost/mpl/int.hpp" +// $Source$ +// $Date$ +// $Revision$ -namespace boost { namespace mpl { namespace aux { +#include +#include +#include +#include + +#if defined(BOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS) \ + || defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG) + +# include -template< typename C_ > -struct value_wknd +namespace boost { namespace mpl { namespace aux { +template< typename C_ > struct value_wknd : C_ { }; -#if defined(BOOST_MPL_MSVC_60_ETI_BUG) -template<> -struct value_wknd - : int_<0> +#if defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG) +template<> struct value_wknd + : int_<1> { + using int_<1>::value; }; #endif +}}} -}}} // namespace boost::mpl::aux - -# if !defined(BOOST_MPL_MSVC_60_ETI_BUG) -# define BOOST_MPL_AUX_VALUE_WKND(C) ::boost::mpl::aux::value_wknd< C > -# define BOOST_MPL_AUX_MSVC_VALUE_WKND(C) BOOST_MPL_AUX_VALUE_WKND(C) -# else -# define BOOST_MPL_AUX_VALUE_WKND(C) C -# define BOOST_MPL_AUX_MSVC_VALUE_WKND(C) ::boost::mpl::aux::value_wknd< C > -# endif +#if !defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG) +# define BOOST_MPL_AUX_VALUE_WKND(C) \ + ::BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::aux::value_wknd< C > \ +/**/ +# define BOOST_MPL_AUX_MSVC_VALUE_WKND(C) BOOST_MPL_AUX_VALUE_WKND(C) #else +# define BOOST_MPL_AUX_VALUE_WKND(C) C +# define BOOST_MPL_AUX_MSVC_VALUE_WKND(C) \ + ::boost::mpl::aux::value_wknd< C > \ +/**/ +#endif + +#else // BOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS # define BOOST_MPL_AUX_VALUE_WKND(C) C # define BOOST_MPL_AUX_MSVC_VALUE_WKND(C) C -#endif // __BORLANDC__ || BOOST_MPL_MSVC_60_ETI_BUG +#endif + +#if BOOST_WORKAROUND(__EDG_VERSION__, <= 238) +# define BOOST_MPL_AUX_NESTED_VALUE_WKND(T, C) \ + BOOST_MPL_AUX_STATIC_CAST(T, C::value) \ +/**/ +#else +# define BOOST_MPL_AUX_NESTED_VALUE_WKND(T, C) \ + BOOST_MPL_AUX_VALUE_WKND(C)::value \ +/**/ +#endif + + +namespace boost { namespace mpl { namespace aux { + +template< typename T > struct value_type_wknd +{ + typedef typename T::value_type type; +}; + +#if defined(BOOST_MPL_CFG_MSVC_ETI_BUG) +template<> struct value_type_wknd +{ + typedef int type; +}; +#endif + +}}} #endif // BOOST_MPL_AUX_VALUE_WKND_HPP_INCLUDED diff --git a/deal.II/contrib/boost/include/boost/mpl/bool.hpp b/deal.II/contrib/boost/include/boost/mpl/bool.hpp index 38e8596644..6270be739b 100644 --- a/deal.II/contrib/boost/include/boost/mpl/bool.hpp +++ b/deal.II/contrib/boost/include/boost/mpl/bool.hpp @@ -2,35 +2,38 @@ #ifndef BOOST_MPL_BOOL_HPP_INCLUDED #define BOOST_MPL_BOOL_HPP_INCLUDED -// + file: boost/mpl/bool.hpp -// + last modified: 08/mar/03 - -// Copyright (c) 2000-03 -// Aleksey Gurtovoy +// Copyright Aleksey Gurtovoy 2000-2004 // -// 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. +// 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) // // See http://www.boost.org/libs/mpl for documentation. -#include "boost/mpl/bool_fwd.hpp" -#include "boost/mpl/aux_/config/static_constant.hpp" +// $Source$ +// $Date$ +// $Revision$ + +#include +#include +#include -namespace boost { namespace mpl { +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN template< bool C_ > struct bool_ { BOOST_STATIC_CONSTANT(bool, value = C_); + typedef integral_c_tag tag; typedef bool_ type; typedef bool value_type; operator bool() const { return this->value; } }; -}} // namespace boost::mpl +#if !defined(BOOST_NO_INCLASS_MEMBER_INITIALIZATION) +template< bool C_ > +bool const bool_::value; +#endif + +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE #endif // BOOST_MPL_BOOL_HPP_INCLUDED diff --git a/deal.II/contrib/boost/include/boost/mpl/bool_fwd.hpp b/deal.II/contrib/boost/include/boost/mpl/bool_fwd.hpp index 851293715c..618534e953 100644 --- a/deal.II/contrib/boost/include/boost/mpl/bool_fwd.hpp +++ b/deal.II/contrib/boost/include/boost/mpl/bool_fwd.hpp @@ -2,23 +2,21 @@ #ifndef BOOST_MPL_BOOL_FWD_HPP_INCLUDED #define BOOST_MPL_BOOL_FWD_HPP_INCLUDED -// + file: boost/mpl/bool_fwd.hpp -// + last modified: 08/mar/03 - -// Copyright (c) 2000-03 -// Aleksey Gurtovoy +// Copyright Aleksey Gurtovoy 2000-2004 // -// 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. +// 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) // // See http://www.boost.org/libs/mpl for documentation. -namespace boost { namespace mpl { +// $Source$ +// $Date$ +// $Revision$ + +#include + +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN template< bool C_ > struct bool_; @@ -26,6 +24,10 @@ template< bool C_ > struct bool_; typedef bool_ true_; typedef bool_ false_; -}} +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE + +BOOST_MPL_AUX_ADL_BARRIER_DECL(bool_) +BOOST_MPL_AUX_ADL_BARRIER_DECL(true_) +BOOST_MPL_AUX_ADL_BARRIER_DECL(false_) #endif // BOOST_MPL_BOOL_FWD_HPP_INCLUDED diff --git a/deal.II/contrib/boost/include/boost/mpl/if.hpp b/deal.II/contrib/boost/include/boost/mpl/if.hpp index 0ef343e196..9b4f999654 100644 --- a/deal.II/contrib/boost/include/boost/mpl/if.hpp +++ b/deal.II/contrib/boost/include/boost/mpl/if.hpp @@ -2,30 +2,27 @@ #ifndef BOOST_MPL_IF_HPP_INCLUDED #define BOOST_MPL_IF_HPP_INCLUDED -// + file: boost/mpl/if.hpp -// + last modified: 10/mar/03 - -// Copyright (c) 2000-03 Boost.org +// Copyright Aleksey Gurtovoy 2000-2004 // -// 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. +// 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) // // See http://www.boost.org/libs/mpl for documentation. -#include "boost/mpl/aux_/value_wknd.hpp" -#include "boost/mpl/aux_/ice_cast.hpp" -#include "boost/mpl/aux_/void_spec.hpp" -#include "boost/mpl/aux_/lambda_support.hpp" -#include "boost/mpl/aux_/config/workaround.hpp" -#include "boost/config.hpp" +// $Source$ +// $Date$ +// $Revision$ + +#include +#include +#include +#include +#include +#include +#include -namespace boost { -namespace mpl { +namespace boost { namespace mpl { #if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) @@ -48,71 +45,31 @@ struct if_c typedef T2 type; }; +// agurt, 05/sep/04: nondescriptive parameter names for the sake of DigitalMars +// (and possibly MWCW < 8.0); see http://article.gmane.org/gmane.comp.lib.boost.devel/108959 template< - typename BOOST_MPL_AUX_VOID_SPEC_PARAM(C) - , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T1) - , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T2) + typename BOOST_MPL_AUX_NA_PARAM(T1) + , typename BOOST_MPL_AUX_NA_PARAM(T2) + , typename BOOST_MPL_AUX_NA_PARAM(T3) > struct if_ { private: // agurt, 02/jan/03: two-step 'type' definition for the sake of aCC typedef if_c< -#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x561)) - BOOST_MPL_AUX_VALUE_WKND(C)::value +#if defined(BOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS) + BOOST_MPL_AUX_VALUE_WKND(T1)::value #else - BOOST_MPL_AUX_ICE_CAST(bool, BOOST_MPL_AUX_VALUE_WKND(C)::value) + BOOST_MPL_AUX_STATIC_CAST(bool, BOOST_MPL_AUX_VALUE_WKND(T1)::value) #endif - , T1 , T2 + , T3 > almost_type_; public: typedef typename almost_type_::type type; - BOOST_MPL_AUX_LAMBDA_SUPPORT(3,if_,(C,T1,T2)) -}; - -#elif defined(BOOST_MSVC) && (BOOST_MSVC <= 1300) - -// MSVC6.5-specific version - -template< - bool C_ - , typename T1 - , typename T2 - > -struct if_c -{ - private: - template struct answer { typedef T1 type; }; - template<> struct answer { typedef T2 type; }; - - public: - typedef typename answer< C_ >::type type; -}; - -// (almost) copy & paste in order to save one more -// recursively nested template instantiation to user -template< - typename C_ - , typename T1 - , typename T2 - > -struct if_ -{ - private: - template struct answer { typedef T1 type; }; - template<> struct answer { typedef T2 type; }; - - // agurt, 17/sep/02: in some situations MSVC 7.0 doesn't - // handle 'answer' expression very well - enum { c_ = C_::value }; - - public: - typedef typename answer< BOOST_MPL_AUX_ICE_CAST(bool, c_) >::type type; - - BOOST_MPL_AUX_LAMBDA_SUPPORT(3,if_,(C_,T1,T2)) + BOOST_MPL_AUX_LAMBDA_SUPPORT(3,if_,(T1,T2,T3)) }; #else @@ -142,36 +99,37 @@ struct if_impl } // namespace aux template< - bool C + bool C_ , typename T1 , typename T2 > struct if_c { - typedef typename aux::if_impl< C > + typedef typename aux::if_impl< C_ > ::template result_::type type; }; // (almost) copy & paste in order to save one more // recursively nested template instantiation to user template< - typename BOOST_MPL_AUX_VOID_SPEC_PARAM(C) - , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T1) - , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T2) + typename BOOST_MPL_AUX_NA_PARAM(C_) + , typename BOOST_MPL_AUX_NA_PARAM(T1) + , typename BOOST_MPL_AUX_NA_PARAM(T2) > struct if_ { - typedef typename aux::if_impl< BOOST_MPL_AUX_ICE_CAST(bool, C::value) > + enum { msvc_wknd_ = BOOST_MPL_AUX_MSVC_VALUE_WKND(C_)::value }; + + typedef typename aux::if_impl< BOOST_MPL_AUX_STATIC_CAST(bool, msvc_wknd_) > ::template result_::type type; - BOOST_MPL_AUX_LAMBDA_SUPPORT(3,if_,(C,T1,T2)) + BOOST_MPL_AUX_LAMBDA_SUPPORT(3,if_,(C_,T1,T2)) }; #endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -BOOST_MPL_AUX_VOID_SPEC(3, if_) +BOOST_MPL_AUX_NA_SPEC(3, if_) -} // namespace mpl -} // namespace boost +}} #endif // BOOST_MPL_IF_HPP_INCLUDED diff --git a/deal.II/contrib/boost/include/boost/mpl/int_fwd.hpp b/deal.II/contrib/boost/include/boost/mpl/int_fwd.hpp index 7165c24108..738ae160fd 100644 --- a/deal.II/contrib/boost/include/boost/mpl/int_fwd.hpp +++ b/deal.II/contrib/boost/include/boost/mpl/int_fwd.hpp @@ -2,24 +2,26 @@ #ifndef BOOST_MPL_INT_FWD_HPP_INCLUDED #define BOOST_MPL_INT_FWD_HPP_INCLUDED -// + file: boost/mpl/int_fwd.hpp -// + last modified: 08/mar/03 - -// Copyright (c) 2000-03 -// Aleksey Gurtovoy +// Copyright Aleksey Gurtovoy 2000-2004 // -// 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. +// 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) // // See http://www.boost.org/libs/mpl for documentation. -namespace boost { namespace mpl { -template< int N > struct int_; -}} +// $Source$ +// $Date$ +// $Revision$ + +#include +#include + +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN + +template< BOOST_MPL_AUX_NTTP_DECL(int, N) > struct int_; + +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE +BOOST_MPL_AUX_ADL_BARRIER_DECL(int_) #endif // BOOST_MPL_INT_FWD_HPP_INCLUDED diff --git a/deal.II/contrib/boost/include/boost/mpl/lambda_fwd.hpp b/deal.II/contrib/boost/include/boost/mpl/lambda_fwd.hpp index a4680b552e..78a72d9015 100644 --- a/deal.II/contrib/boost/include/boost/mpl/lambda_fwd.hpp +++ b/deal.II/contrib/boost/include/boost/mpl/lambda_fwd.hpp @@ -1,36 +1,57 @@ -//----------------------------------------------------------------------------- -// boost mpl/labmda_fwd.hpp header file -// See http://www.boost.org for updates, documentation, and revision history. -//----------------------------------------------------------------------------- -// -// Copyright (c) 2001-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. #ifndef BOOST_MPL_LAMBDA_FWD_HPP_INCLUDED #define BOOST_MPL_LAMBDA_FWD_HPP_INCLUDED -#include "boost/mpl/aux_/lambda_arity_param.hpp" -#include "boost/mpl/aux_/config/lambda.hpp" +// Copyright Aleksey Gurtovoy 2001-2004 +// +// 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) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date$ +// $Revision$ -namespace boost { -namespace mpl { +#include +#include +#include -#if !defined(BOOST_MPL_NO_FULL_LAMBDA_SUPPORT) -template< typename T BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(typename Arity) > +#if !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) + +# include +# include +# include + +namespace boost { namespace mpl { + +template< + typename T = na + , typename Tag = void_ + BOOST_MPL_AUX_LAMBDA_ARITY_PARAM( + typename Arity = int_< aux::template_arity::value > + ) + > struct lambda; -#else -template< typename T, bool Protect > struct lambda; -#endif -} // namespace mpl -} // namespace boost +}} + +#else // BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT + +# include + +namespace boost { namespace mpl { + +template< + typename T = na + , typename Tag = void_ + , typename Protect = true_ + > +struct lambda; + +}} + +#endif #endif // BOOST_MPL_LAMBDA_FWD_HPP_INCLUDED diff --git a/deal.II/contrib/boost/include/boost/mpl/limits/arity.hpp b/deal.II/contrib/boost/include/boost/mpl/limits/arity.hpp index a045c3c1b8..9e03307024 100644 --- a/deal.II/contrib/boost/include/boost/mpl/limits/arity.hpp +++ b/deal.II/contrib/boost/include/boost/mpl/limits/arity.hpp @@ -1,24 +1,21 @@ -//----------------------------------------------------------------------------- -// boost mpl/limits/arity.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. #ifndef BOOST_MPL_LIMITS_ARITY_HPP_INCLUDED #define BOOST_MPL_LIMITS_ARITY_HPP_INCLUDED -#if !defined(BOOST_MPL_METAFUNCTION_MAX_ARITY) -# define BOOST_MPL_METAFUNCTION_MAX_ARITY 5 +// Copyright Aleksey Gurtovoy 2000-2004 +// +// 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) +// +// See http://www.boost.org/libs/mpl for documentation. + +// $Source$ +// $Date$ +// $Revision$ + +#if !defined(BOOST_MPL_LIMIT_METAFUNCTION_ARITY) +# define BOOST_MPL_LIMIT_METAFUNCTION_ARITY 5 #endif #endif // BOOST_MPL_LIMITS_ARITY_HPP_INCLUDED diff --git a/deal.II/contrib/boost/include/boost/mpl/size_t.hpp b/deal.II/contrib/boost/include/boost/mpl/size_t.hpp index 086d1dcb8b..231694562b 100644 --- a/deal.II/contrib/boost/include/boost/mpl/size_t.hpp +++ b/deal.II/contrib/boost/include/boost/mpl/size_t.hpp @@ -2,28 +2,24 @@ #ifndef BOOST_MPL_SIZE_T_HPP_INCLUDED #define BOOST_MPL_SIZE_T_HPP_INCLUDED -// + file: boost/mpl/size_t.hpp -// + last modified: 08/mar/03 - -// Copyright (c) 2000-03 -// Aleksey Gurtovoy +// Copyright Aleksey Gurtovoy 2000-2004 // -// 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. +// 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) // // See http://www.boost.org/libs/mpl for documentation. -#include "boost/mpl/size_t_fwd.hpp" +// $Source$ +// $Date$ +// $Revision$ + +#include #define AUX_WRAPPER_VALUE_TYPE std::size_t #define AUX_WRAPPER_NAME size_t #define AUX_WRAPPER_PARAMS(N) std::size_t N -#include "boost/mpl/aux_/integral_wrapper.hpp" +#include #endif // BOOST_MPL_SIZE_T_HPP_INCLUDED diff --git a/deal.II/contrib/boost/include/boost/mpl/size_t_fwd.hpp b/deal.II/contrib/boost/include/boost/mpl/size_t_fwd.hpp index 3cd63c4046..3ea74dce40 100644 --- a/deal.II/contrib/boost/include/boost/mpl/size_t_fwd.hpp +++ b/deal.II/contrib/boost/include/boost/mpl/size_t_fwd.hpp @@ -2,27 +2,27 @@ #ifndef BOOST_MPL_SIZE_T_FWD_HPP_INCLUDED #define BOOST_MPL_SIZE_T_FWD_HPP_INCLUDED -// + file: boost/mpl/size_t_fwd.hpp -// + last modified: 08/mar/03 - -// Copyright (c) 2000-03 -// Aleksey Gurtovoy +// Copyright Aleksey Gurtovoy 2000-2004 // -// 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. +// 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) // // See http://www.boost.org/libs/mpl for documentation. -#include "boost/config.hpp" // make sure 'size_t' is placed into 'std' +// $Source$ +// $Date$ +// $Revision$ + +#include +#include // make sure 'size_t' is placed into 'std' #include -namespace boost { namespace mpl { +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN + template< std::size_t N > struct size_t; -}} + +BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE +BOOST_MPL_AUX_ADL_BARRIER_DECL(size_t) #endif // BOOST_MPL_SIZE_T_FWD_HPP_INCLUDED diff --git a/deal.II/contrib/boost/include/boost/preprocessor/arithmetic/inc.hpp b/deal.II/contrib/boost/include/boost/preprocessor/arithmetic/inc.hpp index 817e8a61a2..1597ab85c3 100644 --- a/deal.II/contrib/boost/include/boost/preprocessor/arithmetic/inc.hpp +++ b/deal.II/contrib/boost/include/boost/preprocessor/arithmetic/inc.hpp @@ -2,10 +2,9 @@ # * Housemarque Oy # * http://www.housemarque.com # * -# * Permission to copy, use, modify, sell and distribute this software is -# * granted provided this copyright notice appears in all copies. This -# * software is provided "as is" without express or implied warranty, and -# * with no claim as to its suitability for any purpose. +# * 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) # */ # # /* Revised by Paul Mensonides (2002) */ diff --git a/deal.II/contrib/boost/include/boost/preprocessor/cat.hpp b/deal.II/contrib/boost/include/boost/preprocessor/cat.hpp index 946bdcd106..b2a82c0691 100644 --- a/deal.II/contrib/boost/include/boost/preprocessor/cat.hpp +++ b/deal.II/contrib/boost/include/boost/preprocessor/cat.hpp @@ -2,10 +2,9 @@ # * Housemarque Oy # * http://www.housemarque.com # * -# * Permission to copy, use, modify, sell and distribute this software is -# * granted provided this copyright notice appears in all copies. This -# * software is provided "as is" without express or implied warranty, and -# * with no claim as to its suitability for any purpose. +# * 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) # */ # # /* Revised by Paul Mensonides (2002) */ diff --git a/deal.II/contrib/boost/include/boost/preprocessor/comma_if.hpp b/deal.II/contrib/boost/include/boost/preprocessor/comma_if.hpp index e74a52ebba..9ceb079555 100644 --- a/deal.II/contrib/boost/include/boost/preprocessor/comma_if.hpp +++ b/deal.II/contrib/boost/include/boost/preprocessor/comma_if.hpp @@ -1,10 +1,9 @@ # /* ************************************************************************** # * * -# * (C) Copyright Paul Mensonides 2002. Permission to copy, use, * -# * modify, sell, and distribute this software is granted provided * -# * this copyright notice appears in all copies. This software is * -# * provided "as is" without express or implied warranty, and with * -# * no claim at to its suitability for any purpose. * +# * (C) Copyright Paul Mensonides 2002. +# * 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) # * * # ************************************************************************** */ # diff --git a/deal.II/contrib/boost/include/boost/preprocessor/config/config.hpp b/deal.II/contrib/boost/include/boost/preprocessor/config/config.hpp index 2f1d224f76..06b3c5a6e1 100644 --- a/deal.II/contrib/boost/include/boost/preprocessor/config/config.hpp +++ b/deal.II/contrib/boost/include/boost/preprocessor/config/config.hpp @@ -1,10 +1,9 @@ # /* ************************************************************************** # * * -# * (C) Copyright Paul Mensonides 2002. Permission to copy, use, * -# * modify, sell, and distribute this software is granted provided * -# * this copyright notice appears in all copies. This software is * -# * provided "as is" without express or implied warranty, and with * -# * no claim at to its suitability for any purpose. * +# * (C) Copyright Paul Mensonides 2002. +# * 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) # * * # ************************************************************************** */ # @@ -22,14 +21,17 @@ # define BOOST_PP_CONFIG_MWCC() 0x0008 # define BOOST_PP_CONFIG_BCC() 0x0010 # define BOOST_PP_CONFIG_EDG() 0x0020 +# define BOOST_PP_CONFIG_DMC() 0x0040 # # ifndef BOOST_PP_CONFIG_FLAGS -# if defined(__SPIRIT_PP__) +# if defined(__SPIRIT_PP__) || defined(__MWERKS__) && __MWERKS__ >= 0x3200 # define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_STRICT()) # elif defined(__EDG__) || defined(__EDG_VERSION__) # define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_EDG() | BOOST_PP_CONFIG_STRICT()) # elif defined(__MWERKS__) # define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_MWCC()) +# elif defined(__DMC__) +# define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_DMC()) # elif defined(__BORLANDC__) || defined(__IBMC__) || defined(__IBMCPP__) || defined(__SUNPRO_CC) # define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_BCC()) # elif defined(_MSC_VER) diff --git a/deal.II/contrib/boost/include/boost/preprocessor/control/expr_iif.hpp b/deal.II/contrib/boost/include/boost/preprocessor/control/expr_iif.hpp index f69b9578ec..58f45a48f5 100644 --- a/deal.II/contrib/boost/include/boost/preprocessor/control/expr_iif.hpp +++ b/deal.II/contrib/boost/include/boost/preprocessor/control/expr_iif.hpp @@ -1,10 +1,9 @@ # /* ************************************************************************** # * * -# * (C) Copyright Paul Mensonides 2002. Permission to copy, use, * -# * modify, sell, and distribute this software is granted provided * -# * this copyright notice appears in all copies. This software is * -# * provided "as is" without express or implied warranty, and with * -# * no claim at to its suitability for any purpose. * +# * (C) Copyright Paul Mensonides 2002. +# * 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) # * * # ************************************************************************** */ # diff --git a/deal.II/contrib/boost/include/boost/preprocessor/control/if.hpp b/deal.II/contrib/boost/include/boost/preprocessor/control/if.hpp index 71b743d1c2..52cfc3dabb 100644 --- a/deal.II/contrib/boost/include/boost/preprocessor/control/if.hpp +++ b/deal.II/contrib/boost/include/boost/preprocessor/control/if.hpp @@ -2,10 +2,9 @@ # * Housemarque Oy # * http://www.housemarque.com # * -# * Permission to copy, use, modify, sell and distribute this software is -# * granted provided this copyright notice appears in all copies. This -# * software is provided "as is" without express or implied warranty, and -# * with no claim as to its suitability for any purpose. +# * 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) # */ # # /* Revised by Paul Mensonides (2002) */ diff --git a/deal.II/contrib/boost/include/boost/preprocessor/control/iif.hpp b/deal.II/contrib/boost/include/boost/preprocessor/control/iif.hpp index c60f69f384..fd0781793f 100644 --- a/deal.II/contrib/boost/include/boost/preprocessor/control/iif.hpp +++ b/deal.II/contrib/boost/include/boost/preprocessor/control/iif.hpp @@ -1,10 +1,9 @@ # /* ************************************************************************** # * * -# * (C) Copyright Paul Mensonides 2002. Permission to copy, use, * -# * modify, sell, and distribute this software is granted provided * -# * this copyright notice appears in all copies. This software is * -# * provided "as is" without express or implied warranty, and with * -# * no claim at to its suitability for any purpose. * +# * (C) Copyright Paul Mensonides 2002. +# * 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) # * * # ************************************************************************** */ # diff --git a/deal.II/contrib/boost/include/boost/preprocessor/debug/error.hpp b/deal.II/contrib/boost/include/boost/preprocessor/debug/error.hpp index 383f836fc4..c8ae5e7505 100644 --- a/deal.II/contrib/boost/include/boost/preprocessor/debug/error.hpp +++ b/deal.II/contrib/boost/include/boost/preprocessor/debug/error.hpp @@ -1,10 +1,9 @@ # /* ************************************************************************** # * * -# * (C) Copyright Paul Mensonides 2002. Permission to copy, use, * -# * modify, sell, and distribute this software is granted provided * -# * this copyright notice appears in all copies. This software is * -# * provided "as is" without express or implied warranty, and with * -# * no claim at to its suitability for any purpose. * +# * (C) Copyright Paul Mensonides 2002. +# * 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) # * * # ************************************************************************** */ # diff --git a/deal.II/contrib/boost/include/boost/preprocessor/detail/auto_rec.hpp b/deal.II/contrib/boost/include/boost/preprocessor/detail/auto_rec.hpp index eaff3fc6a8..39de1d0028 100644 --- a/deal.II/contrib/boost/include/boost/preprocessor/detail/auto_rec.hpp +++ b/deal.II/contrib/boost/include/boost/preprocessor/detail/auto_rec.hpp @@ -1,15 +1,20 @@ # /* ************************************************************************** # * * -# * (C) Copyright Paul Mensonides 2002. Permission to copy, use, * -# * modify, sell, and distribute this software is granted provided * -# * this copyright notice appears in all copies. This software is * -# * provided "as is" without express or implied warranty, and with * -# * no claim at to its suitability for any purpose. * +# * (C) Copyright Paul Mensonides 2002. +# * 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) # * * # ************************************************************************** */ # # /* See http://www.boost.org for most recent version. */ # +# include +# +# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC() +# include +# else +# # ifndef BOOST_PREPROCESSOR_DETAIL_AUTO_REC_HPP # define BOOST_PREPROCESSOR_DETAIL_AUTO_REC_HPP # @@ -285,3 +290,4 @@ # define BOOST_PP_NODE_255(p) BOOST_PP_IIF(p(255), 255, 256) # # endif +# endif diff --git a/deal.II/contrib/boost/include/boost/preprocessor/detail/check.hpp b/deal.II/contrib/boost/include/boost/preprocessor/detail/check.hpp index 1a12e26d24..6346be7ff6 100644 --- a/deal.II/contrib/boost/include/boost/preprocessor/detail/check.hpp +++ b/deal.II/contrib/boost/include/boost/preprocessor/detail/check.hpp @@ -1,10 +1,9 @@ # /* ************************************************************************** # * * -# * (C) Copyright Paul Mensonides 2002. Permission to copy, use, * -# * modify, sell, and distribute this software is granted provided * -# * this copyright notice appears in all copies. This software is * -# * provided "as is" without express or implied warranty, and with * -# * no claim at to its suitability for any purpose. * +# * (C) Copyright Paul Mensonides 2002. +# * 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) # * * # ************************************************************************** */ # @@ -25,17 +24,23 @@ # define BOOST_PP_CHECK_OO(par) BOOST_PP_CHECK_D ## par # endif # -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() +# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() && ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC() # define BOOST_PP_CHECK_D(x, type) BOOST_PP_CHECK_1(BOOST_PP_CAT(BOOST_PP_CHECK_RESULT_, type x)) # define BOOST_PP_CHECK_1(chk) BOOST_PP_CHECK_2(chk) # define BOOST_PP_CHECK_2(res, _) res -# else +# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() # define BOOST_PP_CHECK_D(x, type) BOOST_PP_CHECK_1(type x) # define BOOST_PP_CHECK_1(chk) BOOST_PP_CHECK_2(chk) # define BOOST_PP_CHECK_2(chk) BOOST_PP_CHECK_3((BOOST_PP_CHECK_RESULT_ ## chk)) # define BOOST_PP_CHECK_3(im) BOOST_PP_CHECK_5(BOOST_PP_CHECK_4 im) # define BOOST_PP_CHECK_4(res, _) res # define BOOST_PP_CHECK_5(res) res +# else // DMC +# define BOOST_PP_CHECK_D(x, type) BOOST_PP_CHECK_OO((type x)) +# define BOOST_PP_CHECK_OO(par) BOOST_PP_CHECK_0 ## par +# define BOOST_PP_CHECK_0(chk) BOOST_PP_CHECK_1(BOOST_PP_CAT(BOOST_PP_CHECK_RESULT_, chk)) +# define BOOST_PP_CHECK_1(chk) BOOST_PP_CHECK_2(chk) +# define BOOST_PP_CHECK_2(res, _) res # endif # # define BOOST_PP_CHECK_RESULT_1 1, BOOST_PP_NIL diff --git a/deal.II/contrib/boost/include/boost/preprocessor/detail/is_binary.hpp b/deal.II/contrib/boost/include/boost/preprocessor/detail/is_binary.hpp index 8a2f267a4f..3428833d64 100644 --- a/deal.II/contrib/boost/include/boost/preprocessor/detail/is_binary.hpp +++ b/deal.II/contrib/boost/include/boost/preprocessor/detail/is_binary.hpp @@ -1,10 +1,9 @@ # /* ************************************************************************** # * * -# * (C) Copyright Paul Mensonides 2002. Permission to copy, use, * -# * modify, sell, and distribute this software is granted provided * -# * this copyright notice appears in all copies. This software is * -# * provided "as is" without express or implied warranty, and with * -# * no claim at to its suitability for any purpose. * +# * (C) Copyright Paul Mensonides 2002. +# * 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) # * * # ************************************************************************** */ # diff --git a/deal.II/contrib/boost/include/boost/preprocessor/empty.hpp b/deal.II/contrib/boost/include/boost/preprocessor/empty.hpp index cbd9ab3dae..116ef744e0 100644 --- a/deal.II/contrib/boost/include/boost/preprocessor/empty.hpp +++ b/deal.II/contrib/boost/include/boost/preprocessor/empty.hpp @@ -1,10 +1,9 @@ # /* ************************************************************************** # * * -# * (C) Copyright Paul Mensonides 2002. Permission to copy, use, * -# * modify, sell, and distribute this software is granted provided * -# * this copyright notice appears in all copies. This software is * -# * provided "as is" without express or implied warranty, and with * -# * no claim at to its suitability for any purpose. * +# * (C) Copyright Paul Mensonides 2002. +# * 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) # * * # ************************************************************************** */ # diff --git a/deal.II/contrib/boost/include/boost/preprocessor/facilities/empty.hpp b/deal.II/contrib/boost/include/boost/preprocessor/facilities/empty.hpp index 715fb691be..46db19026a 100644 --- a/deal.II/contrib/boost/include/boost/preprocessor/facilities/empty.hpp +++ b/deal.II/contrib/boost/include/boost/preprocessor/facilities/empty.hpp @@ -2,10 +2,9 @@ # * Housemarque Oy # * http://www.housemarque.com # * -# * Permission to copy, use, modify, sell and distribute this software is -# * granted provided this copyright notice appears in all copies. This -# * software is provided "as is" without express or implied warranty, and -# * with no claim as to its suitability for any purpose. +# * 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) # */ # # /* Revised by Paul Mensonides (2002) */ diff --git a/deal.II/contrib/boost/include/boost/preprocessor/facilities/identity.hpp b/deal.II/contrib/boost/include/boost/preprocessor/facilities/identity.hpp index d1b911f0cc..13ec4cab88 100644 --- a/deal.II/contrib/boost/include/boost/preprocessor/facilities/identity.hpp +++ b/deal.II/contrib/boost/include/boost/preprocessor/facilities/identity.hpp @@ -2,10 +2,9 @@ # * Housemarque Oy # * http://www.housemarque.com # * -# * Permission to copy, use, modify, sell and distribute this software is -# * granted provided this copyright notice appears in all copies. This -# * software is provided "as is" without express or implied warranty, and -# * with no claim as to its suitability for any purpose. +# * 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) # */ # # /* Revised by Paul Mensonides (2002) */ diff --git a/deal.II/contrib/boost/include/boost/preprocessor/identity.hpp b/deal.II/contrib/boost/include/boost/preprocessor/identity.hpp index a08687b2d0..847dd13296 100644 --- a/deal.II/contrib/boost/include/boost/preprocessor/identity.hpp +++ b/deal.II/contrib/boost/include/boost/preprocessor/identity.hpp @@ -1,10 +1,9 @@ # /* ************************************************************************** # * * -# * (C) Copyright Paul Mensonides 2002. Permission to copy, use, * -# * modify, sell, and distribute this software is granted provided * -# * this copyright notice appears in all copies. This software is * -# * provided "as is" without express or implied warranty, and with * -# * no claim at to its suitability for any purpose. * +# * (C) Copyright Paul Mensonides 2002. +# * 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) # * * # ************************************************************************** */ # diff --git a/deal.II/contrib/boost/include/boost/preprocessor/inc.hpp b/deal.II/contrib/boost/include/boost/preprocessor/inc.hpp index 20a6a8f544..b98d3a67c5 100644 --- a/deal.II/contrib/boost/include/boost/preprocessor/inc.hpp +++ b/deal.II/contrib/boost/include/boost/preprocessor/inc.hpp @@ -1,10 +1,9 @@ # /* ************************************************************************** # * * -# * (C) Copyright Paul Mensonides 2002. Permission to copy, use, * -# * modify, sell, and distribute this software is granted provided * -# * this copyright notice appears in all copies. This software is * -# * provided "as is" without express or implied warranty, and with * -# * no claim at to its suitability for any purpose. * +# * (C) Copyright Paul Mensonides 2002. +# * 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) # * * # ************************************************************************** */ # diff --git a/deal.II/contrib/boost/include/boost/preprocessor/list/adt.hpp b/deal.II/contrib/boost/include/boost/preprocessor/list/adt.hpp index 1caec1c82c..b4f12bab63 100644 --- a/deal.II/contrib/boost/include/boost/preprocessor/list/adt.hpp +++ b/deal.II/contrib/boost/include/boost/preprocessor/list/adt.hpp @@ -2,10 +2,9 @@ # * Housemarque Oy # * http://www.housemarque.com # * -# * Permission to copy, use, modify, sell and distribute this software is -# * granted provided this copyright notice appears in all copies. This -# * software is provided "as is" without express or implied warranty, and -# * with no claim as to its suitability for any purpose. +# * 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) # * # * See http://www.boost.org for most recent version. # */ diff --git a/deal.II/contrib/boost/include/boost/preprocessor/list/for_each_i.hpp b/deal.II/contrib/boost/include/boost/preprocessor/list/for_each_i.hpp index b2e420ba05..8f02e2e317 100644 --- a/deal.II/contrib/boost/include/boost/preprocessor/list/for_each_i.hpp +++ b/deal.II/contrib/boost/include/boost/preprocessor/list/for_each_i.hpp @@ -2,10 +2,9 @@ # * Housemarque Oy # * http://www.housemarque.com # * -# * Permission to copy, use, modify, sell and distribute this software is -# * granted provided this copyright notice appears in all copies. This -# * software is provided "as is" without express or implied warranty, and -# * with no claim as to its suitability for any purpose. +# * 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) # */ # # /* Revised by Paul Mensonides (2002) */ diff --git a/deal.II/contrib/boost/include/boost/preprocessor/logical/and.hpp b/deal.II/contrib/boost/include/boost/preprocessor/logical/and.hpp index 61bf381347..8590365e58 100644 --- a/deal.II/contrib/boost/include/boost/preprocessor/logical/and.hpp +++ b/deal.II/contrib/boost/include/boost/preprocessor/logical/and.hpp @@ -2,10 +2,9 @@ # * Housemarque Oy # * http://www.housemarque.com # * -# * Permission to copy, use, modify, sell and distribute this software is -# * granted provided this copyright notice appears in all copies. This -# * software is provided "as is" without express or implied warranty, and -# * with no claim as to its suitability for any purpose. +# * 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) # */ # # /* Revised by Paul Mensonides (2002) */ diff --git a/deal.II/contrib/boost/include/boost/preprocessor/logical/bitand.hpp b/deal.II/contrib/boost/include/boost/preprocessor/logical/bitand.hpp index c6eeae3b3c..74e9527f20 100644 --- a/deal.II/contrib/boost/include/boost/preprocessor/logical/bitand.hpp +++ b/deal.II/contrib/boost/include/boost/preprocessor/logical/bitand.hpp @@ -1,10 +1,9 @@ # /* ************************************************************************** # * * -# * (C) Copyright Paul Mensonides 2002. Permission to copy, use, * -# * modify, sell, and distribute this software is granted provided * -# * this copyright notice appears in all copies. This software is * -# * provided "as is" without express or implied warranty, and with * -# * no claim at to its suitability for any purpose. * +# * (C) Copyright Paul Mensonides 2002. +# * 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) # * * # ************************************************************************** */ # diff --git a/deal.II/contrib/boost/include/boost/preprocessor/logical/bool.hpp b/deal.II/contrib/boost/include/boost/preprocessor/logical/bool.hpp index a20736c25a..fc01b5ba50 100644 --- a/deal.II/contrib/boost/include/boost/preprocessor/logical/bool.hpp +++ b/deal.II/contrib/boost/include/boost/preprocessor/logical/bool.hpp @@ -2,10 +2,9 @@ # * Housemarque Oy # * http://www.housemarque.com # * -# * Permission to copy, use, modify, sell and distribute this software is -# * granted provided this copyright notice appears in all copies. This -# * software is provided "as is" without express or implied warranty, and -# * with no claim as to its suitability for any purpose. +# * 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) # */ # # /* Revised by Paul Mensonides (2002) */ diff --git a/deal.II/contrib/boost/include/boost/preprocessor/logical/compl.hpp b/deal.II/contrib/boost/include/boost/preprocessor/logical/compl.hpp index acf6b87953..ad4c7a4ca6 100644 --- a/deal.II/contrib/boost/include/boost/preprocessor/logical/compl.hpp +++ b/deal.II/contrib/boost/include/boost/preprocessor/logical/compl.hpp @@ -1,10 +1,9 @@ # /* ************************************************************************** # * * -# * (C) Copyright Paul Mensonides 2002. Permission to copy, use, * -# * modify, sell, and distribute this software is granted provided * -# * this copyright notice appears in all copies. This software is * -# * provided "as is" without express or implied warranty, and with * -# * no claim at to its suitability for any purpose. * +# * (C) Copyright Paul Mensonides 2002. +# * 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) # * * # ************************************************************************** */ # diff --git a/deal.II/contrib/boost/include/boost/preprocessor/punctuation/comma.hpp b/deal.II/contrib/boost/include/boost/preprocessor/punctuation/comma.hpp index e6acfb57d8..38c2e0e7e7 100644 --- a/deal.II/contrib/boost/include/boost/preprocessor/punctuation/comma.hpp +++ b/deal.II/contrib/boost/include/boost/preprocessor/punctuation/comma.hpp @@ -2,10 +2,9 @@ # * Housemarque Oy # * http://www.housemarque.com # * -# * Permission to copy, use, modify, sell and distribute this software is -# * granted provided this copyright notice appears in all copies. This -# * software is provided "as is" without express or implied warranty, and -# * with no claim as to its suitability for any purpose. +# * 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) # */ # # /* Revised by Paul Mensonides (2002) */ diff --git a/deal.II/contrib/boost/include/boost/preprocessor/punctuation/comma_if.hpp b/deal.II/contrib/boost/include/boost/preprocessor/punctuation/comma_if.hpp index 7db8b3699c..c711f366a4 100644 --- a/deal.II/contrib/boost/include/boost/preprocessor/punctuation/comma_if.hpp +++ b/deal.II/contrib/boost/include/boost/preprocessor/punctuation/comma_if.hpp @@ -2,10 +2,9 @@ # * Housemarque Oy # * http://www.housemarque.com # * -# * Permission to copy, use, modify, sell and distribute this software is -# * granted provided this copyright notice appears in all copies. This -# * software is provided "as is" without express or implied warranty, and -# * with no claim as to its suitability for any purpose. +# * 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) # */ # # /* Revised by Paul Mensonides (2002) */ diff --git a/deal.II/contrib/boost/include/boost/preprocessor/repetition/detail/for.hpp b/deal.II/contrib/boost/include/boost/preprocessor/repetition/detail/for.hpp index f517ab0566..2770f2c1ea 100644 --- a/deal.II/contrib/boost/include/boost/preprocessor/repetition/detail/for.hpp +++ b/deal.II/contrib/boost/include/boost/preprocessor/repetition/detail/for.hpp @@ -2,10 +2,9 @@ # * Housemarque Oy # * http://www.housemarque.com # * -# * Permission to copy, use, modify, sell and distribute this software is -# * granted provided this copyright notice appears in all copies. This -# * software is provided "as is" without express or implied warranty, and -# * with no claim as to its suitability for any purpose. +# * 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) # */ # # /* Revised by Paul Mensonides (2002) */ diff --git a/deal.II/contrib/boost/include/boost/preprocessor/repetition/for.hpp b/deal.II/contrib/boost/include/boost/preprocessor/repetition/for.hpp index 9624f4bf2e..5a63753d9c 100644 --- a/deal.II/contrib/boost/include/boost/preprocessor/repetition/for.hpp +++ b/deal.II/contrib/boost/include/boost/preprocessor/repetition/for.hpp @@ -2,10 +2,9 @@ # * Housemarque Oy # * http://www.housemarque.com # * -# * Permission to copy, use, modify, sell and distribute this software is -# * granted provided this copyright notice appears in all copies. This -# * software is provided "as is" without express or implied warranty, and -# * with no claim as to its suitability for any purpose. +# * 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) # */ # # /* Revised by Paul Mensonides (2002) */ @@ -37,6 +36,8 @@ # include # elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() # include +# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC() +# include # else # include # endif diff --git a/deal.II/contrib/boost/include/boost/preprocessor/tuple/eat.hpp b/deal.II/contrib/boost/include/boost/preprocessor/tuple/eat.hpp index 6fd20a7e60..82e8ffcb24 100644 --- a/deal.II/contrib/boost/include/boost/preprocessor/tuple/eat.hpp +++ b/deal.II/contrib/boost/include/boost/preprocessor/tuple/eat.hpp @@ -2,10 +2,9 @@ # * Housemarque Oy # * http://www.housemarque.com # * -# * Permission to copy, use, modify, sell and distribute this software is -# * granted provided this copyright notice appears in all copies. This -# * software is provided "as is" without express or implied warranty, and -# * with no claim as to its suitability for any purpose. +# * 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) # */ # # /* Revised by Paul Mensonides (2002) */ diff --git a/deal.II/contrib/boost/include/boost/preprocessor/tuple/elem.hpp b/deal.II/contrib/boost/include/boost/preprocessor/tuple/elem.hpp index 4fefe6990d..2e225aec7d 100644 --- a/deal.II/contrib/boost/include/boost/preprocessor/tuple/elem.hpp +++ b/deal.II/contrib/boost/include/boost/preprocessor/tuple/elem.hpp @@ -2,10 +2,9 @@ # * Housemarque Oy # * http://www.housemarque.com # * -# * Permission to copy, use, modify, sell and distribute this software is -# * granted provided this copyright notice appears in all copies. This -# * software is provided "as is" without express or implied warranty, and -# * with no claim as to its suitability for any purpose. +# * 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) # */ # # /* Revised by Paul Mensonides (2002) */ diff --git a/deal.II/contrib/boost/include/boost/preprocessor/tuple/rem.hpp b/deal.II/contrib/boost/include/boost/preprocessor/tuple/rem.hpp index fd3e03470f..9b76df961d 100644 --- a/deal.II/contrib/boost/include/boost/preprocessor/tuple/rem.hpp +++ b/deal.II/contrib/boost/include/boost/preprocessor/tuple/rem.hpp @@ -1,10 +1,9 @@ # /* ************************************************************************** # * * -# * (C) Copyright Paul Mensonides 2002. Permission to copy, use, * -# * modify, sell, and distribute this software is granted provided * -# * this copyright notice appears in all copies. This software is * -# * provided "as is" without express or implied warranty, and with * -# * no claim at to its suitability for any purpose. * +# * (C) Copyright Paul Mensonides 2002. +# * 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) # * * # ************************************************************************** */ # diff --git a/deal.II/contrib/boost/include/boost/preprocessor/tuple/to_list.hpp b/deal.II/contrib/boost/include/boost/preprocessor/tuple/to_list.hpp index 4794083fca..e8af8ddc29 100644 --- a/deal.II/contrib/boost/include/boost/preprocessor/tuple/to_list.hpp +++ b/deal.II/contrib/boost/include/boost/preprocessor/tuple/to_list.hpp @@ -2,10 +2,9 @@ # * Housemarque Oy # * http://www.housemarque.com # * -# * Permission to copy, use, modify, sell and distribute this software is -# * granted provided this copyright notice appears in all copies. This -# * software is provided "as is" without express or implied warranty, and -# * with no claim as to its suitability for any purpose. +# * 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) # */ # # /* Revised by Paul Mensonides (2002) */ diff --git a/deal.II/contrib/boost/include/boost/ref.hpp b/deal.II/contrib/boost/include/boost/ref.hpp index 52f01cd0b2..3745e7ca0f 100644 --- a/deal.II/contrib/boost/include/boost/ref.hpp +++ b/deal.II/contrib/boost/include/boost/ref.hpp @@ -1,13 +1,15 @@ #ifndef BOOST_REF_HPP_INCLUDED -# define BOOST_REF_HPP_INCLUDED +#define BOOST_REF_HPP_INCLUDED -# if _MSC_VER+0 >= 1020 -# pragma once -# endif +// MS compatible compilers support #pragma once + +#if defined(_MSC_VER) && (_MSC_VER >= 1020) +# pragma once +#endif -# include -# include -# include +#include +#include +#include // // ref.hpp - ref/cref, useful helper functions @@ -16,10 +18,9 @@ // Copyright (C) 2001, 2002 Peter Dimov // Copyright (C) 2002 David Abrahams // -// Permission to copy, use, modify, sell and distribute this software -// is granted provided this copyright notice appears in all copies. -// This software is provided "as is" without express or implied -// warranty, and with no claim as to its suitability for any purpose. +// 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) // // See http://www.boost.org/libs/bind/ref.html for documentation. // @@ -38,7 +39,7 @@ public: #else - explicit reference_wrapper(T& t): t_(addressof(t)) {} + explicit reference_wrapper(T& t): t_(boost::addressof(t)) {} #endif @@ -72,18 +73,13 @@ template inline reference_wrapper BOOST_REF_CONST cref(T const # undef BOOST_REF_CONST # ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + template class is_reference_wrapper : public mpl::false_ { }; -template -class is_reference_wrapper > - : public mpl::true_ -{ -}; - template class unwrap_reference { @@ -91,12 +87,30 @@ class unwrap_reference typedef T type; }; -template -class unwrap_reference > -{ - public: - typedef T type; -}; +# define AUX_REFERENCE_WRAPPER_METAFUNCTIONS_DEF(X) \ +template \ +class is_reference_wrapper< X > \ + : public mpl::true_ \ +{ \ +}; \ +\ +template \ +class unwrap_reference< X > \ +{ \ + public: \ + typedef T type; \ +}; \ +/**/ + +AUX_REFERENCE_WRAPPER_METAFUNCTIONS_DEF(reference_wrapper) +#if !defined(BOOST_NO_CV_SPECIALIZATIONS) +AUX_REFERENCE_WRAPPER_METAFUNCTIONS_DEF(reference_wrapper const) +AUX_REFERENCE_WRAPPER_METAFUNCTIONS_DEF(reference_wrapper volatile) +AUX_REFERENCE_WRAPPER_METAFUNCTIONS_DEF(reference_wrapper const volatile) +#endif + +# undef AUX_REFERENCE_WRAPPER_METAFUNCTIONS_DEF + # else // no partial specialization } // namespace boost diff --git a/deal.II/contrib/boost/include/boost/shared_ptr.hpp b/deal.II/contrib/boost/include/boost/shared_ptr.hpp index d33eb77e82..8d6196cadb 100644 --- a/deal.II/contrib/boost/include/boost/shared_ptr.hpp +++ b/deal.II/contrib/boost/include/boost/shared_ptr.hpp @@ -7,10 +7,9 @@ // (C) Copyright Greg Colvin and Beman Dawes 1998, 1999. // Copyright (c) 2001, 2002, 2003 Peter Dimov // -// Permission to copy, use, modify, sell and distribute this software -// is granted provided this copyright notice appears in all copies. -// This software is provided "as is" without express or implied -// warranty, and with no claim as to its suitability for any purpose. +// 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) // // See http://www.boost.org/libs/smart_ptr/shared_ptr.htm for documentation. // @@ -48,6 +47,7 @@ namespace detail { struct static_cast_tag {}; +struct const_cast_tag {}; struct dynamic_cast_tag {}; struct polymorphic_cast_tag {}; @@ -68,16 +68,26 @@ template<> struct shared_ptr_traits typedef void reference; }; +template<> struct shared_ptr_traits +{ + typedef void reference; +}; + +template<> struct shared_ptr_traits +{ + typedef void reference; +}; + #endif // enable_shared_from_this support -template void sp_enable_shared_from_this(boost::enable_shared_from_this * pe, Y * px, shared_count const & pn) +template void sp_enable_shared_from_this( shared_count const & pn, boost::enable_shared_from_this const * pe, Y const * px ) { - if(pe != 0) pe->_internal_weak_this._internal_assign(px, pn); + if(pe != 0) pe->_internal_weak_this._internal_assign(const_cast(px), pn); } -inline void sp_enable_shared_from_this(void const *, void const *, shared_count const &) +inline void sp_enable_shared_from_this( shared_count const & /*pn*/, ... ) { } @@ -111,9 +121,9 @@ public: } template - explicit shared_ptr(Y * p): px(p), pn(p, checked_deleter()) // Y must be complete + explicit shared_ptr( Y * p ): px( p ), pn( p ) // Y must be complete { - detail::sp_enable_shared_from_this(p, p, pn); + detail::sp_enable_shared_from_this( pn, p, p ); } // @@ -124,7 +134,7 @@ public: template shared_ptr(Y * p, D d): px(p), pn(p, d) { - detail::sp_enable_shared_from_this(p, p, pn); + detail::sp_enable_shared_from_this( pn, p, p ); } // generated copy constructor, assignment, destructor are fine... @@ -158,6 +168,11 @@ public: { } + template + shared_ptr(shared_ptr const & r, detail::const_cast_tag): px(const_cast(r.px)), pn(r.pn) + { + } + template shared_ptr(shared_ptr const & r, detail::dynamic_cast_tag): px(dynamic_cast(r.px)), pn(r.pn) { @@ -183,7 +198,7 @@ public: { Y * tmp = r.get(); pn = detail::shared_count(r); - detail::sp_enable_shared_from_this(tmp, tmp, pn); + detail::sp_enable_shared_from_this( pn, tmp, tmp ); } #endif @@ -253,15 +268,26 @@ public: return px != 0; } -#else +#elif \ + ( defined(__MWERKS__) && BOOST_WORKAROUND(__MWERKS__, < 0x3200) ) || \ + ( defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ < 304) ) typedef T * (this_type::*unspecified_bool_type)() const; - + operator unspecified_bool_type() const // never throws { return px == 0? 0: &this_type::get; } +#else + + typedef T * this_type::*unspecified_bool_type; + + operator unspecified_bool_type() const // never throws + { + return px == 0? 0: &this_type::px; + } + #endif // operator! is redundant, but some compilers need it @@ -351,6 +377,11 @@ template shared_ptr static_pointer_cast(shared_ptr const return shared_ptr(r, detail::static_cast_tag()); } +template shared_ptr const_pointer_cast(shared_ptr const & r) +{ + return shared_ptr(r, detail::const_cast_tag()); +} + template shared_ptr dynamic_pointer_cast(shared_ptr const & r) { return shared_ptr(r, detail::dynamic_cast_tag()); @@ -414,9 +445,12 @@ template std::basic_ostream & operator<< (std:: // get_deleter (experimental) -#if defined(__GNUC__) && (__GNUC__ < 3) +#if ( defined(__GNUC__) && BOOST_WORKAROUND(__GNUC__, < 3) ) || \ + ( defined(__EDG_VERSION__) && BOOST_WORKAROUND(__EDG_VERSION__, <= 238) ) || \ + ( defined(__HP_aCC) && BOOST_WORKAROUND(__HP_aCC, <= 33500) ) // g++ 2.9x doesn't allow static_cast(void *) +// apparently EDG 2.38 and HP aCC A.03.35 also don't accept it template D * get_deleter(shared_ptr const & p) { diff --git a/deal.II/contrib/boost/include/boost/static_assert.hpp b/deal.II/contrib/boost/include/boost/static_assert.hpp index 7e53e51bb9..9d24c05647 100644 --- a/deal.II/contrib/boost/include/boost/static_assert.hpp +++ b/deal.II/contrib/boost/include/boost/static_assert.hpp @@ -1,8 +1,7 @@ // (C) Copyright John Maddock 2000. -// Permission to copy, use, modify, sell and -// distribute this software is granted provided this copyright notice appears -// in all copies. This software is provided "as is" without express or implied -// warranty, and with no claim as to its suitability for any purpose. +// 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/static_assert for documentation. @@ -16,6 +15,7 @@ #define BOOST_STATIC_ASSERT_HPP #include +#include #ifdef __BORLANDC__ // @@ -23,6 +23,11 @@ #define BOOST_BUGGY_INTEGRAL_CONSTANT_EXPRESSIONS #endif +#if defined(__GNUC__) && (__GNUC__ == 3) && ((__GNUC_MINOR__ == 3) || (__GNUC_MINOR__ == 4)) +// gcc 3.3 and 3.4 don't produce good error messages with the default version: +# define BOOST_SA_GCC_WORKAROUND +#endif + namespace boost{ // HP aCC cannot deal with missing names for template value parameters @@ -57,21 +62,41 @@ template struct static_assert_test{}; // style casts: too many compilers currently have problems with static_cast // when used inside integral constant expressions. // -#if !defined(BOOST_BUGGY_INTEGRAL_CONSTANT_EXPRESSIONS) && !defined(__MWERKS__) +#if !defined(BOOST_BUGGY_INTEGRAL_CONSTANT_EXPRESSIONS) -#if defined(BOOST_MSVC) +#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300) // __LINE__ macro broken when -ZI is used see Q199057 // fortunately MSVC ignores duplicate typedef's. #define BOOST_STATIC_ASSERT( B ) \ typedef ::boost::static_assert_test<\ sizeof(::boost::STATIC_ASSERTION_FAILURE< (bool)( B ) >)\ > boost_static_assert_typedef_ -#elif defined(BOOST_INTEL_CXX_VERSION) +#elif defined(BOOST_MSVC) +#define BOOST_STATIC_ASSERT( B ) \ + typedef ::boost::static_assert_test<\ + sizeof(::boost::STATIC_ASSERTION_FAILURE< (bool)( B ) >)>\ + BOOST_JOIN(boost_static_assert_typedef_, __COUNTER__) +#elif defined(BOOST_INTEL_CXX_VERSION) || defined(BOOST_SA_GCC_WORKAROUND) // agurt 15/sep/02: a special care is needed to force Intel C++ issue an error // instead of warning in case of failure # define BOOST_STATIC_ASSERT( B ) \ typedef char BOOST_JOIN(boost_static_assert_typedef_, __LINE__) \ [ ::boost::STATIC_ASSERTION_FAILURE< (bool)( B ) >::value ] +#elif defined(__sgi) +// special version for SGI MIPSpro compiler +#define BOOST_STATIC_ASSERT( B ) \ + BOOST_STATIC_CONSTANT(bool, \ + BOOST_JOIN(boost_static_assert_test_, __LINE__) = ( B )); \ + typedef ::boost::static_assert_test<\ + sizeof(::boost::STATIC_ASSERTION_FAILURE< \ + BOOST_JOIN(boost_static_assert_test_, __LINE__) >)>\ + BOOST_JOIN(boost_static_assert_typedef_, __LINE__) +#elif BOOST_WORKAROUND(__MWERKS__, <= 0x3003) +// special version for CodeWarrior <= 8.x +#define BOOST_STATIC_ASSERT( B ) \ + BOOST_STATIC_CONSTANT(int, \ + BOOST_JOIN(boost_static_assert_test_, __LINE__) = \ + sizeof(::boost::STATIC_ASSERTION_FAILURE< (bool)( B ) >) ) #else // generic version #define BOOST_STATIC_ASSERT( B ) \ @@ -89,3 +114,5 @@ template struct static_assert_test{}; #endif // BOOST_STATIC_ASSERT_HPP + + diff --git a/deal.II/contrib/boost/include/boost/throw_exception.hpp b/deal.II/contrib/boost/include/boost/throw_exception.hpp index 3f06fcd196..bb79a37d8a 100644 --- a/deal.II/contrib/boost/include/boost/throw_exception.hpp +++ b/deal.II/contrib/boost/include/boost/throw_exception.hpp @@ -1,8 +1,10 @@ #ifndef BOOST_THROW_EXCEPTION_HPP_INCLUDED #define BOOST_THROW_EXCEPTION_HPP_INCLUDED -#if _MSC_VER >= 1020 -#pragma once +// MS compatible compilers support #pragma once + +#if defined(_MSC_VER) && (_MSC_VER >= 1020) +# pragma once #endif // @@ -10,10 +12,9 @@ // // Copyright (c) 2002 Peter Dimov and Multi Media Ltd. // -// Permission to copy, use, modify, sell and distribute this software -// is granted provided this copyright notice appears in all copies. -// This software is provided "as is" without express or implied -// warranty, and with no claim as to its suitability for any purpose. +// 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) // // http://www.boost.org/libs/utility/throw_exception.html // @@ -33,7 +34,7 @@ void throw_exception(std::exception const & e); // user defined #else -template void throw_exception(E const & e) +template inline void throw_exception(E const & e) { throw e; } diff --git a/deal.II/contrib/boost/include/boost/tuple/detail/tuple_basic.hpp b/deal.II/contrib/boost/include/boost/tuple/detail/tuple_basic.hpp index 2cbdd2cd1e..a1d3284d64 100644 --- a/deal.II/contrib/boost/include/boost/tuple/detail/tuple_basic.hpp +++ b/deal.II/contrib/boost/include/boost/tuple/detail/tuple_basic.hpp @@ -2,37 +2,32 @@ // Copyright (C) 1999, 2000 Jaakko Järvi (jaakko.jarvi@cs.utu.fi) // -// Permission to copy, use, sell and distribute this software is granted -// provided this copyright notice appears in all copies. -// Permission to modify the code and to distribute modified code is granted -// provided this copyright notice appears in all copies, and a notice -// that the code was modified is included with the copyright notice. -// -// This software is provided "as is" without express or implied warranty, -// and with no claim as to its suitability for any purpose. +// 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) // For more information, see http://www.boost.org // Outside help: // This and that, Gary Powell. -// Fixed return types for get_head/get_tail +// Fixed return types for get_head/get_tail // ( and other bugs ) per suggestion of Jens Maurer // simplified element type accessors + bug fix (Jeremy Siek) -// Several changes/additions according to suggestions by Doug Gregor, +// Several changes/additions according to suggestions by Douglas Gregor, // William Kempf, Vesa Karvonen, John Max Skaller, Ed Brey, Beman Dawes, // David Abrahams. // Revision history: // 2002 05 01 Hugo Duncan: Fix for Borland after Jaakko's previous changes -// 2002 04 18 Jaakko: tuple element types can be void or plain function +// 2002 04 18 Jaakko: tuple element types can be void or plain function // types, as long as no object is created. // Tuple objects can no hold even noncopyable types -// such as arrays. +// such as arrays. // 2001 10 22 John Maddock // Fixes for Borland C++ // 2001 08 30 David Abrahams // Added default constructor for cons<>. -// ----------------------------------------------------------------- +// ----------------------------------------------------------------- #ifndef BOOST_TUPLE_BASIC_HPP #define BOOST_TUPLE_BASIC_HPP @@ -42,7 +37,9 @@ #include "boost/type_traits/cv_traits.hpp" #include "boost/type_traits/function_traits.hpp" - + +#include "boost/detail/workaround.hpp" // needed for BOOST_WORKAROUND + namespace boost { namespace tuples { @@ -66,16 +63,16 @@ template struct IF { } // end detail // - cons forward declaration ----------------------------------------------- -template struct cons; +template struct cons; // - tuple forward declaration ----------------------------------------------- template < - class T0 = null_type, class T1 = null_type, class T2 = null_type, - class T3 = null_type, class T4 = null_type, class T5 = null_type, - class T6 = null_type, class T7 = null_type, class T8 = null_type, + class T0 = null_type, class T1 = null_type, class T2 = null_type, + class T3 = null_type, class T4 = null_type, class T5 = null_type, + class T6 = null_type, class T7 = null_type, class T8 = null_type, class T9 = null_type> -class tuple; +class tuple; // tuple_length forward declaration template struct length; @@ -84,18 +81,7 @@ template struct length; namespace detail { -#ifdef BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS - - template struct workaround_holder {}; - -# define BOOST_TUPLE_DUMMY_PARM , detail::workaround_holder* = 0 -# define BOOST_TUPLE_SINGLE_DUMMY_PARM detail::workaround_holder* = 0 -#else -# define BOOST_TUPLE_DUMMY_PARM -# define BOOST_TUPLE_SINGLE_DUMMY_PARM -#endif - -// -- generate error template, referencing to non-existing members of this +// -- generate error template, referencing to non-existing members of this // template is used to produce compilation errors intentionally template class generate_error; @@ -108,23 +94,33 @@ struct get_class { template inline static RET get(const cons& t) { +#if BOOST_WORKAROUND(__IBMCPP__,==600) + // vacpp 6.0 is not very consistent regarding the member template keyword + // Here it generates an error when the template keyword is used. + return get_class::get(t.tail); +#else return get_class::BOOST_NESTED_TEMPLATE get(t.tail); +#endif } template inline static RET get(cons& t) { +#if BOOST_WORKAROUND(__IBMCPP__,==600) + return get_class::get(t.tail); +#else return get_class::BOOST_NESTED_TEMPLATE get(t.tail); +#endif } }; template<> struct get_class<0> { - template + template inline static RET get(const cons& t) { return t.head; } - template + template inline static RET get(cons& t) { return t.head; @@ -135,10 +131,12 @@ struct get_class<0> { // -cons type accessors ---------------------------------------- -// typename tuples::element::type gets the type of the +// typename tuples::element::type gets the type of the // Nth element ot T, first element is at index 0 // ------------------------------------------------------- +#ifndef BOOST_NO_CV_SPECIALIZATIONS + template struct element { @@ -160,14 +158,69 @@ private: typedef typename T::tail_type Next; typedef typename element::type unqualified_type; public: +#if BOOST_WORKAROUND(__BORLANDC__,<0x600) + typedef const unqualified_type type; +#else typedef typename boost::add_const::type type; +#endif + }; template struct element<0,const T> { +#if BOOST_WORKAROUND(__BORLANDC__,<0x600) + typedef const typename T::head_type type; +#else typedef typename boost::add_const::type type; +#endif +}; + +#else // def BOOST_NO_CV_SPECIALIZATIONS + +namespace detail { + +template +struct element_impl +{ +private: + typedef typename T::tail_type Next; +public: + typedef typename element_impl::type type; +}; + +template +struct element_impl +{ +private: + typedef typename T::tail_type Next; +public: + typedef const typename element_impl::type type; +}; + +template +struct element_impl<0, T, false /* IsConst */> +{ + typedef typename T::head_type type; +}; + +template +struct element_impl<0, T, true /* IsConst */> +{ + typedef const typename T::head_type type; }; +} // end of namespace detail + + +template +struct element: + public detail::element_impl::value> +{ +}; + +#endif + + // -get function templates ----------------------------------------------- // Usage: get(aTuple) @@ -194,8 +247,8 @@ template struct access_traits { typedef T& const_type; typedef T& non_const_type; - - typedef T& parameter_type; + + typedef T& parameter_type; }; // get function for non-const cons-lists, returns a reference to the element @@ -204,13 +257,19 @@ template inline typename access_traits< typename element >::type >::non_const_type -get(cons& c BOOST_TUPLE_DUMMY_PARM) { - return detail::get_class::BOOST_NESTED_TEMPLATE +get(cons& c BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(int, N)) { +#if BOOST_WORKAROUND(__IBMCPP__,==600 ) + return detail::get_class:: +#else + return detail::get_class::BOOST_NESTED_TEMPLATE +#endif get< typename access_traits< typename element >::type - >::non_const_type>(c); -} + >::non_const_type, + HT,TT + >(c); +} // get function for const cons-lists, returns a const reference to // the element. If the element is a reference, returns the reference @@ -219,13 +278,19 @@ template inline typename access_traits< typename element >::type >::const_type -get(const cons& c BOOST_TUPLE_DUMMY_PARM) { - return detail::get_class::BOOST_NESTED_TEMPLATE +get(const cons& c BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(int, N)) { +#if BOOST_WORKAROUND(__IBMCPP__,==600) + return detail::get_class:: +#else + return detail::get_class::BOOST_NESTED_TEMPLATE +#endif get< typename access_traits< typename element >::type - >::const_type>(c); -} + >::const_type, + HT,TT + >(c); +} // -- the cons template -------------------------------------------------- namespace detail { @@ -246,7 +311,7 @@ template struct wrap_non_storeable_type { >::RET type; }; template <> struct wrap_non_storeable_type { - typedef non_storeable_type type; + typedef non_storeable_type type; }; } // detail @@ -257,49 +322,49 @@ struct cons { typedef HT head_type; typedef TT tail_type; - typedef typename + typedef typename detail::wrap_non_storeable_type::type stored_head_type; stored_head_type head; tail_type tail; - typename access_traits::non_const_type + typename access_traits::non_const_type get_head() { return head; } - typename access_traits::non_const_type - get_tail() { return tail; } + typename access_traits::non_const_type + get_tail() { return tail; } - typename access_traits::const_type + typename access_traits::const_type get_head() const { return head; } - - typename access_traits::const_type - get_tail() const { return tail; } + + typename access_traits::const_type + get_tail() const { return tail; } cons() : head(), tail() {} // cons() : head(detail::default_arg::f()), tail() {} - // the argument for head is not strictly needed, but it prevents - // array type elements. This is good, since array type elements - // cannot be supported properly in any case (no assignment, + // the argument for head is not strictly needed, but it prevents + // array type elements. This is good, since array type elements + // cannot be supported properly in any case (no assignment, // copy works only if the tails are exactly the same type, ...) - + cons(typename access_traits::parameter_type h, const tail_type& t) - : head (h), tail(t) {} + : head (h), tail(t) {} - template - cons( T1& t1, T2& t2, T3& t3, T4& t4, T5& t5, - T6& t6, T7& t7, T8& t8, T9& t9, T10& t10 ) - : head (t1), + cons( T1& t1, T2& t2, T3& t3, T4& t4, T5& t5, + T6& t6, T7& t7, T8& t8, T9& t9, T10& t10 ) + : head (t1), tail (t2, t3, t4, t5, t6, t7, t8, t9, t10, detail::cnull()) {} - template - cons( const null_type& t1, T2& t2, T3& t3, T4& t4, T5& t5, - T6& t6, T7& t7, T8& t8, T9& t9, T10& t10 ) - : head (), + cons( const null_type& t1, T2& t2, T3& t3, T4& t4, T5& t5, + T6& t6, T7& t7, T8& t8, T9& t9, T10& t10 ) + : head (), tail (t2, t3, t4, t5, t6, t7, t8, t9, t10, detail::cnull()) {} @@ -308,18 +373,18 @@ struct cons { cons( const cons& u ) : head(u.head), tail(u.tail) {} template - cons& operator=( const cons& u ) { - head=u.head; tail=u.tail; return *this; + cons& operator=( const cons& u ) { + head=u.head; tail=u.tail; return *this; } - // must define assignment operator explicitly, implicit version is + // must define assignment operator explicitly, implicit version is // illformed if HT is a reference (12.8. (12)) - cons& operator=(const cons& u) { - head = u.head; tail = u.tail; return *this; + cons& operator=(const cons& u) { + head = u.head; tail = u.tail; return *this; } template - cons& operator=( const std::pair& u ) { + cons& operator=( const std::pair& u ) { BOOST_STATIC_ASSERT(length::value == 2); // check length = 2 head = u.first; tail.head = u.second; return *this; } @@ -349,47 +414,47 @@ struct cons { typedef null_type tail_type; typedef cons self_type; - typedef typename + typedef typename detail::wrap_non_storeable_type::type stored_head_type; stored_head_type head; - - typename access_traits::non_const_type + + typename access_traits::non_const_type get_head() { return head; } - - null_type get_tail() { return null_type(); } - typename access_traits::const_type + null_type get_tail() { return null_type(); } + + typename access_traits::const_type get_head() const { return head; } - - const null_type get_tail() const { return null_type(); } + + const null_type get_tail() const { return null_type(); } // cons() : head(detail::default_arg::f()) {} cons() : head() {} cons(typename access_traits::parameter_type h, const null_type& = null_type()) - : head (h) {} + : head (h) {} template - cons(T1& t1, const null_type&, const null_type&, const null_type&, - const null_type&, const null_type&, const null_type&, + cons(T1& t1, const null_type&, const null_type&, const null_type&, + const null_type&, const null_type&, const null_type&, const null_type&, const null_type&, const null_type&) : head (t1) {} - cons(const null_type&, - const null_type&, const null_type&, const null_type&, - const null_type&, const null_type&, const null_type&, + cons(const null_type&, + const null_type&, const null_type&, const null_type&, + const null_type&, const null_type&, const null_type&, const null_type&, const null_type&, const null_type&) : head () {} template cons( const cons& u ) : head(u.head) {} - + template - cons& operator=(const cons& u ) + cons& operator=(const cons& u ) { head = u.head; return *this; } - // must define assignment operator explicitely, implicit version + // must define assignment operator explicitely, implicit version // is illformed if HT is a reference cons& operator=(const cons& u) { head = u.head; return *this; } @@ -397,7 +462,7 @@ struct cons { typename access_traits< typename element::type >::non_const_type - get(BOOST_TUPLE_SINGLE_DUMMY_PARM) { + get(BOOST_EXPLICIT_TEMPLATE_NON_TYPE(int, N)) { return boost::tuples::get(*this); } @@ -405,7 +470,7 @@ struct cons { typename access_traits< typename element::type >::const_type - get(BOOST_TUPLE_SINGLE_DUMMY_PARM) const { + get(BOOST_EXPLICIT_TEMPLATE_NON_TYPE(int, N)) const { return boost::tuples::get(*this); } @@ -432,12 +497,12 @@ struct length { namespace detail { // Tuple to cons mapper -------------------------------------------------- -template struct map_tuple_to_cons { - typedef cons::type > type; }; @@ -453,46 +518,46 @@ struct map_tuple_to_cons -class tuple : - public detail::map_tuple_to_cons::type +class tuple : + public detail::map_tuple_to_cons::type { public: - typedef typename + typedef typename detail::map_tuple_to_cons::type inherited; typedef typename inherited::head_type head_type; - typedef typename inherited::tail_type tail_type; + typedef typename inherited::tail_type tail_type; -// access_traits::parameter_type takes non-reference types as const T& +// access_traits::parameter_type takes non-reference types as const T& tuple() {} - + tuple(typename access_traits::parameter_type t0) - : inherited(t0, detail::cnull(), detail::cnull(), detail::cnull(), - detail::cnull(), detail::cnull(), detail::cnull(), + : inherited(t0, detail::cnull(), detail::cnull(), detail::cnull(), + detail::cnull(), detail::cnull(), detail::cnull(), detail::cnull(), detail::cnull(), detail::cnull()) {} tuple(typename access_traits::parameter_type t0, typename access_traits::parameter_type t1) - : inherited(t0, t1, detail::cnull(), detail::cnull(), - detail::cnull(), detail::cnull(), detail::cnull(), + : inherited(t0, t1, detail::cnull(), detail::cnull(), + detail::cnull(), detail::cnull(), detail::cnull(), detail::cnull(), detail::cnull(), detail::cnull()) {} tuple(typename access_traits::parameter_type t0, typename access_traits::parameter_type t1, typename access_traits::parameter_type t2) - : inherited(t0, t1, t2, detail::cnull(), detail::cnull(), - detail::cnull(), detail::cnull(), detail::cnull(), + : inherited(t0, t1, t2, detail::cnull(), detail::cnull(), + detail::cnull(), detail::cnull(), detail::cnull(), detail::cnull(), detail::cnull()) {} tuple(typename access_traits::parameter_type t0, typename access_traits::parameter_type t1, typename access_traits::parameter_type t2, typename access_traits::parameter_type t3) - : inherited(t0, t1, t2, t3, detail::cnull(), detail::cnull(), - detail::cnull(), detail::cnull(), detail::cnull(), + : inherited(t0, t1, t2, t3, detail::cnull(), detail::cnull(), + detail::cnull(), detail::cnull(), detail::cnull(), detail::cnull()) {} tuple(typename access_traits::parameter_type t0, @@ -500,7 +565,7 @@ public: typename access_traits::parameter_type t2, typename access_traits::parameter_type t3, typename access_traits::parameter_type t4) - : inherited(t0, t1, t2, t3, t4, detail::cnull(), detail::cnull(), + : inherited(t0, t1, t2, t3, t4, detail::cnull(), detail::cnull(), detail::cnull(), detail::cnull(), detail::cnull()) {} tuple(typename access_traits::parameter_type t0, @@ -509,7 +574,7 @@ public: typename access_traits::parameter_type t3, typename access_traits::parameter_type t4, typename access_traits::parameter_type t5) - : inherited(t0, t1, t2, t3, t4, t5, detail::cnull(), detail::cnull(), + : inherited(t0, t1, t2, t3, t4, t5, detail::cnull(), detail::cnull(), detail::cnull(), detail::cnull()) {} tuple(typename access_traits::parameter_type t0, @@ -519,7 +584,7 @@ public: typename access_traits::parameter_type t4, typename access_traits::parameter_type t5, typename access_traits::parameter_type t6) - : inherited(t0, t1, t2, t3, t4, t5, t6, detail::cnull(), + : inherited(t0, t1, t2, t3, t4, t5, t6, detail::cnull(), detail::cnull(), detail::cnull()) {} tuple(typename access_traits::parameter_type t0, @@ -530,7 +595,7 @@ public: typename access_traits::parameter_type t5, typename access_traits::parameter_type t6, typename access_traits::parameter_type t7) - : inherited(t0, t1, t2, t3, t4, t5, t6, t7, detail::cnull(), + : inherited(t0, t1, t2, t3, t4, t5, t6, t7, detail::cnull(), detail::cnull()) {} tuple(typename access_traits::parameter_type t0, @@ -561,16 +626,16 @@ public: tuple(const cons& p) : inherited(p) {} template - tuple& operator=(const cons& k) { - inherited::operator=(k); + tuple& operator=(const cons& k) { + inherited::operator=(k); return *this; } template - tuple& operator=(const std::pair& k) { + tuple& operator=(const std::pair& k) { BOOST_STATIC_ASSERT(length::value == 2);// check_length = 2 this->head = k.first; - this->tail.head = k.second; + this->tail.head = k.second; return *this; } @@ -578,8 +643,8 @@ public: // The empty tuple template <> -class tuple : - public null_type +class tuple : + public null_type { public: typedef null_type inherited; @@ -590,19 +655,17 @@ public: namespace detail { struct swallow_assign { - + template - swallow_assign& operator=(const T&) { + swallow_assign const& operator=(const T&) const { return *this; } }; } // namespace detail -// "ignore" allows tuple positions to be ignored when using "tie". -namespace { -// detail::swallow_assign ignore; -} +// "ignore" allows tuple positions to be ignored when using "tie". +detail::swallow_assign const ignore = detail::swallow_assign(); // --------------------------------------------------------------------------- // The call_traits for make_tuple @@ -614,7 +677,7 @@ namespace { // from template foo(T& t) : make_tuple_traits::type // Conversions: -// T -> T, +// T -> T, // references -> compile_time_error // reference_wrapper -> T& // const reference_wrapper -> T& @@ -623,19 +686,19 @@ namespace { template struct make_tuple_traits { - typedef T type; + typedef T type; // commented away, see below (JJ) - // typedef typename IF< + // typedef typename IF< // boost::is_function::value, // T&, // T>::RET type; }; - -// The is_function test was there originally for plain function types, + +// The is_function test was there originally for plain function types, // which can't be stored as such (we must either store them as references or -// pointers). Such a type could be formed if make_tuple was called with a +// pointers). Such a type could be formed if make_tuple was called with a // reference to a function. // But this would mean that a const qualified function type was formed in // the make_tuple function and hence make_tuple can't take a function @@ -650,17 +713,17 @@ struct make_tuple_traits { typedef typename detail::generate_error:: do_not_use_with_reference_type error; -}; +}; // Arrays can't be stored as plain types; convert them to references. // All arrays are converted to const. This is because make_tuple takes its -// parameters as const T& and thus the knowledge of the potential +// parameters as const T& and thus the knowledge of the potential // non-constness of actual argument is lost. template struct make_tuple_traits { typedef const T (&type)[n]; }; -template +template struct make_tuple_traits { typedef const T (&type)[n]; }; @@ -669,17 +732,17 @@ template struct make_tuple_traits { typedef const volatile T (&type)[n]; }; -template +template struct make_tuple_traits { typedef const volatile T (&type)[n]; }; -template +template struct make_tuple_traits >{ typedef T& type; }; -template +template struct make_tuple_traits >{ typedef T& type; }; @@ -692,20 +755,20 @@ namespace detail { // a helper traits to make the make_tuple functions shorter (Vesa Karvonen's // suggestion) template < - class T0 = null_type, class T1 = null_type, class T2 = null_type, - class T3 = null_type, class T4 = null_type, class T5 = null_type, - class T6 = null_type, class T7 = null_type, class T8 = null_type, + class T0 = null_type, class T1 = null_type, class T2 = null_type, + class T3 = null_type, class T4 = null_type, class T5 = null_type, + class T6 = null_type, class T7 = null_type, class T8 = null_type, class T9 = null_type > struct make_tuple_mapper { typedef - tuple::type, - typename make_tuple_traits::type, - typename make_tuple_traits::type, - typename make_tuple_traits::type, - typename make_tuple_traits::type, - typename make_tuple_traits::type, - typename make_tuple_traits::type, + tuple::type, + typename make_tuple_traits::type, + typename make_tuple_traits::type, + typename make_tuple_traits::type, + typename make_tuple_traits::type, + typename make_tuple_traits::type, + typename make_tuple_traits::type, typename make_tuple_traits::type, typename make_tuple_traits::type, typename make_tuple_traits::type> type; @@ -715,7 +778,7 @@ struct make_tuple_mapper { // -make_tuple function templates ----------------------------------- inline tuple<> make_tuple() { - return tuple<>(); + return tuple<>(); } template @@ -751,7 +814,7 @@ inline typename detail::make_tuple_mapper::type make_tuple(const T0& t0, const T1& t1, const T2& t2, const T3& t3, const T4& t4) { typedef typename detail::make_tuple_mapper::type t; - return t(t0, t1, t2, t3, t4); + return t(t0, t1, t2, t3, t4); } template @@ -759,7 +822,7 @@ inline typename detail::make_tuple_mapper::type make_tuple(const T0& t0, const T1& t1, const T2& t2, const T3& t3, const T4& t4, const T5& t5) { typedef typename detail::make_tuple_mapper::type t; - return t(t0, t1, t2, t3, t4, t5); + return t(t0, t1, t2, t3, t4, t5); } template @@ -778,7 +841,7 @@ make_tuple(const T0& t0, const T1& t1, const T2& t2, const T3& t3, const T4& t4, const T5& t5, const T6& t6, const T7& t7) { typedef typename detail::make_tuple_mapper ::type t; - return t(t0, t1, t2, t3, t4, t5, t6, t7); + return t(t0, t1, t2, t3, t4, t5, t6, t7); } template::type t; - return t(t0, t1, t2, t3, t4, t5, t6, t7, t8); + return t(t0, t1, t2, t3, t4, t5, t6, t7, t8); } template::type t; - return t(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9); + return t(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9); } @@ -829,54 +892,52 @@ inline tuple tie(T1& t1, T2& t2, T3& t3, T4& t4) { } template -inline tuple +inline tuple tie(T1& t1, T2& t2, T3& t3, T4& t4, T5& t5) { return tuple (t1, t2, t3, t4, t5); } template -inline tuple +inline tuple tie(T1& t1, T2& t2, T3& t3, T4& t4, T5& t5, T6& t6) { return tuple (t1, t2, t3, t4, t5, t6); } template -inline tuple +inline tuple tie(T1& t1, T2& t2, T3& t3, T4& t4, T5& t5, T6& t6, T7& t7) { return tuple (t1, t2, t3, t4, t5, t6, t7); } -template -inline tuple +inline tuple tie(T1& t1, T2& t2, T3& t3, T4& t4, T5& t5, T6& t6, T7& t7, T8& t8) { - return tuple + return tuple (t1, t2, t3, t4, t5, t6, t7, t8); } -template -inline tuple -tie(T1& t1, T2& t2, T3& t3, T4& t4, T5& t5, T6& t6, T7& t7, T8& t8, +inline tuple +tie(T1& t1, T2& t2, T3& t3, T4& t4, T5& t5, T6& t6, T7& t7, T8& t8, T9& t9) { - return tuple + return tuple (t1, t2, t3, t4, t5, t6, t7, t8, t9); } -template -inline tuple -tie(T1& t1, T2& t2, T3& t3, T4& t4, T5& t5, T6& t6, T7& t7, T8& t8, +inline tuple +tie(T1& t1, T2& t2, T3& t3, T4& t4, T5& t5, T6& t6, T7& t7, T8& t8, T9& t9, T10& t10) { - return tuple + return tuple (t1, t2, t3, t4, t5, t6, t7, t8, t9, t10); } } // end of namespace tuples } // end of namespace boost -#undef BOOST_TUPLE_DUMMY_PARM -#undef BOOST_TUPLE_SINGLE_DUMMY_PARM #endif // BOOST_TUPLE_BASIC_HPP diff --git a/deal.II/contrib/boost/include/boost/tuple/tuple.hpp b/deal.II/contrib/boost/include/boost/tuple/tuple.hpp index c1298222e4..ee7fbc47ca 100644 --- a/deal.II/contrib/boost/include/boost/tuple/tuple.hpp +++ b/deal.II/contrib/boost/include/boost/tuple/tuple.hpp @@ -2,14 +2,9 @@ // Copyright (C) 1999, 2000 Jaakko Järvi (jaakko.jarvi@cs.utu.fi) // -// Permission to copy, use, sell and distribute this software is granted -// provided this copyright notice appears in all copies. -// Permission to modify the code and to distribute modified code is granted -// provided this copyright notice appears in all copies, and a notice -// that the code was modified is included with the copyright notice. -// -// This software is provided "as is" without express or implied warranty, -// and with no claim as to its suitability for any purpose. +// 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) // For more information, see http://www.boost.org diff --git a/deal.II/contrib/boost/include/boost/type_traits.hpp b/deal.II/contrib/boost/include/boost/type_traits.hpp index 09ee9382e0..08bb5a1e01 100644 --- a/deal.II/contrib/boost/include/boost/type_traits.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits.hpp @@ -1,9 +1,10 @@ -// (C) Copyright Boost.org 2000. Permission to copy, use, modify, sell and -// distribute this software is granted provided this copyright notice appears -// in all copies. This software is provided "as is" without express or implied -// warranty, and with no claim as to its suitability for any purpose. +// (C) Copyright John Maddock 2000. +// 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/type_traits for most recent version including documentation. -// See http://www.boost.org/libs/type_traits for documentation. // See boost/type_traits/*.hpp for full copyright notices. #ifndef BOOST_TYPE_TRAITS_HPP @@ -23,9 +24,14 @@ #include "boost/type_traits/has_trivial_constructor.hpp" #include "boost/type_traits/has_trivial_copy.hpp" #include "boost/type_traits/has_trivial_destructor.hpp" +#include "boost/type_traits/has_virtual_destructor.hpp" +#include "boost/type_traits/is_signed.hpp" +#include "boost/type_traits/is_unsigned.hpp" +#include "boost/type_traits/is_abstract.hpp" #include "boost/type_traits/is_arithmetic.hpp" #include "boost/type_traits/is_array.hpp" #include "boost/type_traits/is_base_and_derived.hpp" +#include "boost/type_traits/is_base_of.hpp" #include "boost/type_traits/is_class.hpp" #include "boost/type_traits/is_compound.hpp" #include "boost/type_traits/is_const.hpp" @@ -33,10 +39,12 @@ #include "boost/type_traits/is_empty.hpp" #include "boost/type_traits/is_enum.hpp" #include "boost/type_traits/is_float.hpp" +#include "boost/type_traits/is_floating_point.hpp" #include "boost/type_traits/is_function.hpp" #include "boost/type_traits/is_fundamental.hpp" #include "boost/type_traits/is_integral.hpp" #include "boost/type_traits/is_member_function_pointer.hpp" +#include "boost/type_traits/is_member_object_pointer.hpp" #include "boost/type_traits/is_member_pointer.hpp" #include "boost/type_traits/is_object.hpp" #include "boost/type_traits/is_pod.hpp" @@ -49,13 +57,19 @@ #include "boost/type_traits/is_union.hpp" #include "boost/type_traits/is_void.hpp" #include "boost/type_traits/is_volatile.hpp" +#include "boost/type_traits/rank.hpp" +#include "boost/type_traits/extent.hpp" #include "boost/type_traits/remove_bounds.hpp" +#include "boost/type_traits/remove_extent.hpp" +#include "boost/type_traits/remove_all_extents.hpp" #include "boost/type_traits/remove_const.hpp" #include "boost/type_traits/remove_cv.hpp" #include "boost/type_traits/remove_pointer.hpp" #include "boost/type_traits/remove_reference.hpp" #include "boost/type_traits/remove_volatile.hpp" #include "boost/type_traits/type_with_alignment.hpp" +#include "boost/type_traits/function_traits.hpp" +#include "boost/type_traits/aligned_storage.hpp" #include "boost/type_traits/ice.hpp" diff --git a/deal.II/contrib/boost/include/boost/type_traits/add_const.hpp b/deal.II/contrib/boost/include/boost/type_traits/add_const.hpp index 5c0a83fca0..2d0fae0197 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/add_const.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/add_const.hpp @@ -1,12 +1,11 @@ // (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard -// Hinnant & John Maddock 2000. Permission to copy, use, modify, -// sell and distribute this software is granted provided this -// copyright notice appears in all copies. This software is provided -// "as is" without express or implied warranty, and with no claim as -// to its suitability for any purpose. +// Hinnant & John Maddock 2000. +// 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 for most recent version including documentation. +// See http://www.boost.org/libs/type_traits for most recent version including documentation. #ifndef BOOST_TT_ADD_CONST_HPP_INCLUDED #define BOOST_TT_ADD_CONST_HPP_INCLUDED diff --git a/deal.II/contrib/boost/include/boost/type_traits/add_cv.hpp b/deal.II/contrib/boost/include/boost/type_traits/add_cv.hpp index 3f694dbafd..381f17c228 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/add_cv.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/add_cv.hpp @@ -1,12 +1,12 @@ // (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard -// Hinnant & John Maddock 2000. Permission to copy, use, modify, -// sell and distribute this software is granted provided this -// copyright notice appears in all copies. This software is provided -// "as is" without express or implied warranty, and with no claim as -// to its suitability for any purpose. +// Hinnant & John Maddock 2000. +// 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 for most recent version including documentation. +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + #ifndef BOOST_TT_ADD_CV_HPP_INCLUDED #define BOOST_TT_ADD_CV_HPP_INCLUDED diff --git a/deal.II/contrib/boost/include/boost/type_traits/add_pointer.hpp b/deal.II/contrib/boost/include/boost/type_traits/add_pointer.hpp index 66f5c5b5e2..0f36a2e678 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/add_pointer.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/add_pointer.hpp @@ -1,11 +1,10 @@ // (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// Permission to copy, use, modify, sell and distribute this software is -// granted provided this copyright notice appears in all copies. This software -// is provided "as is" without express or implied warranty, and with no claim -// as to its suitability for any purpose. +// 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 for most recent version including documentation. +// See http://www.boost.org/libs/type_traits for most recent version including documentation. #ifndef BOOST_TT_ADD_POINTER_HPP_INCLUDED #define BOOST_TT_ADD_POINTER_HPP_INCLUDED @@ -19,7 +18,7 @@ namespace boost { namespace detail { -#ifdef __BORLANDC__ +#if defined(__BORLANDC__) && (__BORLANDC__ < 0x600) // // For some reason this implementation stops Borlands compiler // from dropping cv-qualifiers, it still fails with references diff --git a/deal.II/contrib/boost/include/boost/type_traits/add_reference.hpp b/deal.II/contrib/boost/include/boost/type_traits/add_reference.hpp index ae9feaf32f..8915b76867 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/add_reference.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/add_reference.hpp @@ -1,11 +1,10 @@ -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// Permission to copy, use, modify, sell and distribute this software is -// granted provided this copyright notice appears in all copies. This software -// is provided "as is" without express or implied warranty, and with no claim -// as to its suitability for any purpose. +// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. +// 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 for most recent version including documentation. +// See http://www.boost.org/libs/type_traits for most recent version including documentation. #ifndef BOOST_TT_ADD_REFERENCE_HPP_INCLUDED #define BOOST_TT_ADD_REFERENCE_HPP_INCLUDED @@ -77,9 +76,9 @@ BOOST_TT_AUX_TYPE_TRAIT_IMPL_SPEC1(add_reference,void const volatile,void const BOOST_TT_AUX_TYPE_TRAIT_DEF1(add_reference,T,typename detail::add_reference_impl::type) -// agurt, 07/mar/03: workaround Borland's ill-formed sensitivity to an additional +// agurt, 07/mar/03: workaround Borland's ill-formed sensitivity to an additional // level of indirection, here -#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x561)) +#if BOOST_WORKAROUND(__BORLANDC__, < 0x600) BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,add_reference,T&,T&) #endif diff --git a/deal.II/contrib/boost/include/boost/type_traits/add_volatile.hpp b/deal.II/contrib/boost/include/boost/type_traits/add_volatile.hpp index 1f99fde277..c575e28a38 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/add_volatile.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/add_volatile.hpp @@ -1,12 +1,11 @@ // (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard -// Hinnant & John Maddock 2000. Permission to copy, use, modify, -// sell and distribute this software is granted provided this -// copyright notice appears in all copies. This software is provided -// "as is" without express or implied warranty, and with no claim as -// to its suitability for any purpose. +// Hinnant & John Maddock 2000. +// 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 for most recent version including documentation. +// See http://www.boost.org/libs/type_traits for most recent version including documentation. #ifndef BOOST_TT_ADD_VOLATILE_HPP_INCLUDED #define BOOST_TT_ADD_VOLATILE_HPP_INCLUDED diff --git a/deal.II/contrib/boost/include/boost/type_traits/alignment_of.hpp b/deal.II/contrib/boost/include/boost/type_traits/alignment_of.hpp index a4a5b95a6b..8672cca17e 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/alignment_of.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/alignment_of.hpp @@ -1,9 +1,10 @@ -// (C) Copyright John Maddock 2000. -// Permission to copy, use, modify, sell and distribute this software is -// granted provided this copyright notice appears in all copies. This software -// is provided "as is" without express or implied warranty, and with no claim -// as to its suitability for any purpose. +// (C) Copyright John Maddock 2000. +// 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/type_traits for most recent version including documentation. #ifndef BOOST_TT_ALIGNMENT_OF_HPP_INCLUDED #define BOOST_TT_ALIGNMENT_OF_HPP_INCLUDED @@ -18,7 +19,7 @@ # pragma warning(push) # pragma warning(disable: 4121) // alignment is sensitive to packing #endif -#ifdef __BORLANDC__ +#if defined(__BORLANDC__) && (__BORLANDC__ < 0x600) #pragma option push -Vx- -Ve- #endif @@ -86,7 +87,7 @@ BOOST_TT_AUX_SIZE_T_TRAIT_SPEC1(alignment_of,void const volatile,0) } // namespace boost -#ifdef __BORLANDC__ +#if defined(__BORLANDC__) && (__BORLANDC__ < 0x600) #pragma option pop #endif #ifdef BOOST_MSVC diff --git a/deal.II/contrib/boost/include/boost/type_traits/broken_compiler_spec.hpp b/deal.II/contrib/boost/include/boost/type_traits/broken_compiler_spec.hpp index 87f75482f2..16e324f799 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/broken_compiler_spec.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/broken_compiler_spec.hpp @@ -1,9 +1,10 @@ -// Copyright (c) 2001 Aleksey Gurtovoy. -// Permission to copy, use, modify, sell and distribute this software is -// granted provided this copyright notice appears in all copies. -// This software is provided "as is" without express or implied warranty, -// and with no claim as to its suitability for any purpose. +// Copyright 2001-2003 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/type_traits for most recent version including documentation. #ifndef BOOST_TT_BROKEN_COMPILER_SPEC_HPP_INCLUDED #define BOOST_TT_BROKEN_COMPILER_SPEC_HPP_INCLUDED @@ -11,18 +12,25 @@ #include "boost/mpl/aux_/lambda_support.hpp" #include "boost/config.hpp" -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - -# define BOOST_TT_BROKEN_COMPILER_SPEC(T) /**/ - -#else - +// these are needed regardless of BOOST_TT_NO_BROKEN_COMPILER_SPEC +#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) namespace boost { namespace detail { template< typename T > struct remove_const_impl { typedef T type; }; template< typename T > struct remove_volatile_impl { typedef T type; }; template< typename T > struct remove_pointer_impl { typedef T type; }; template< typename T > struct remove_reference_impl { typedef T type; }; +typedef int invoke_BOOST_TT_BROKEN_COMPILER_SPEC_outside_all_namespaces; }} +#endif + +// agurt, 27/jun/03: disable the workaround if user defined +// BOOST_TT_NO_BROKEN_COMPILER_SPEC +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ + || defined(BOOST_TT_NO_BROKEN_COMPILER_SPEC) + +# define BOOST_TT_BROKEN_COMPILER_SPEC(T) /**/ + +#else // same as BOOST_TT_AUX_TYPE_TRAIT_IMPL_SPEC1 macro, except that it // never gets #undef-ined @@ -42,6 +50,9 @@ template<> struct trait##_impl \ # define BOOST_TT_AUX_REMOVE_PTR_REF_RANK_1_SPEC(T) \ BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_pointer,T*,T) \ + BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_pointer,T*const,T) \ + BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_pointer,T*volatile,T) \ + BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_pointer,T*const volatile,T) \ BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_reference,T&,T) \ /**/ @@ -66,6 +77,8 @@ template<> struct trait##_impl \ # define BOOST_TT_BROKEN_COMPILER_SPEC(T) \ namespace boost { namespace detail { \ + typedef invoke_BOOST_TT_BROKEN_COMPILER_SPEC_outside_all_namespaces \ + please_invoke_BOOST_TT_BROKEN_COMPILER_SPEC_outside_all_namespaces; \ BOOST_TT_AUX_REMOVE_ALL_RANK_1_SPEC(T) \ BOOST_TT_AUX_REMOVE_ALL_RANK_2_SPEC(T) \ BOOST_TT_AUX_REMOVE_ALL_RANK_2_SPEC(T*) \ diff --git a/deal.II/contrib/boost/include/boost/type_traits/config.hpp b/deal.II/contrib/boost/include/boost/type_traits/config.hpp index f19aaa728b..cdb4ac64c9 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/config.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/config.hpp @@ -1,11 +1,10 @@ -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// Permission to copy, use, modify, sell and distribute this software is -// granted provided this copyright notice appears in all copies. This software -// is provided "as is" without express or implied warranty, and with no claim -// as to its suitability for any purpose. +// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. +// 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 for most recent version including documentation. +// See http://www.boost.org/libs/type_traits for most recent version including documentation. #ifndef BOOST_TT_CONFIG_HPP_INCLUDED #define BOOST_TT_CONFIG_HPP_INCLUDED @@ -19,16 +18,42 @@ // it needs to be declared __cdecl to suppress compiler // warnings from MS and Borland compilers (this *must* // appear before we include is_same.hpp below): -#if defined(BOOST_MSVC) || defined(__BORLANDC__) +#if defined(BOOST_MSVC) || (defined(__BORLANDC__) && !defined(BOOST_DISABLE_WIN32)) # define BOOST_TT_DECL __cdecl #else # define BOOST_TT_DECL /**/ #endif -# if (defined(__MWERKS__) && __MWERKS__ >= 0x3000) || (defined(BOOST_MSVC) && (BOOST_MSVC > 1301)) || defined(BOOST_NO_COMPILER_CONFIG) +# if (defined(__MWERKS__) && __MWERKS__ >= 0x3000) || (defined(BOOST_MSVC) && (BOOST_MSVC > 1301)) || defined(__EDG_VERSION__) || (defined(__GNUC__) && (__GNUC__ >= 3)) || defined(__DMC__) || ( defined(__IBMCPP__) && (__IBMCPP__ >= 600 ) ) || defined(BOOST_NO_COMPILER_CONFIG) # define BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION #endif +// +// Define BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +// when we can't test for function types with elipsis: +// +#if defined(__GNUC__) && (__GNUC__ < 3) +# define BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +#endif + +// +// define BOOST_TT_TEST_MS_FUNC_SIGS +// when we want to test __stdcall etc function types with is_function etc +// (Note, does not work with Borland, even though it does support __stdcall etc): +// +#if defined(_MSC_EXTENSIONS) && !defined(__BORLANDC__) +# define BOOST_TT_TEST_MS_FUNC_SIGS +#endif + +// +// define BOOST_TT_NO_CV_FUNC_TEST +// if tests for cv-qualified member functions don't +// work in is_member_function_pointer +// +#if (defined(__MWERKS__) && __MWERKS__ < 0x3000) || (defined(__IBMCPP__) && __IBMCPP__ <= 600) +# define BOOST_TT_NO_CV_FUNC_TEST +#endif + #endif // BOOST_TT_CONFIG_HPP_INCLUDED diff --git a/deal.II/contrib/boost/include/boost/type_traits/cv_traits.hpp b/deal.II/contrib/boost/include/boost/type_traits/cv_traits.hpp index 6d57c62da8..aac5054ba6 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/cv_traits.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/cv_traits.hpp @@ -1,11 +1,10 @@ // (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard -// Hinnant & John Maddock 2000. Permission to copy, use, modify, -// sell and distribute this software is granted provided this -// copyright notice appears in all copies. This software is provided -// "as is" without express or implied warranty, and with no claim as -// to its suitability for any purpose. +// Hinnant & John Maddock 2000. +// 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 for most recent version including documentation. +// See http://www.boost.org/libs/type_traits for most recent version including documentation. // // defines traits classes for cv-qualified types: // is_const, is_volatile, remove_const, remove_volatile, remove_cv. diff --git a/deal.II/contrib/boost/include/boost/type_traits/detail/bool_trait_def.hpp b/deal.II/contrib/boost/include/boost/type_traits/detail/bool_trait_def.hpp index 417e33b53c..db51ddaa32 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/detail/bool_trait_def.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/detail/bool_trait_def.hpp @@ -1,29 +1,25 @@ -//----------------------------------------------------------------------------- -// boost/type_traits/detail/bool_trait_def.hpp header file -// See http://www.boost.org for updates, documentation, and revision history. -//----------------------------------------------------------------------------- -// -// Copyright (c) 2002 -// Aleksey Gurtovoy + +// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION + +// Copyright Aleksey Gurtovoy 2002-2004 // -// 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. - -// no include guards, the header is intended for multiple inclusion! - -#include "boost/type_traits/detail/template_arity_spec.hpp" -#include "boost/mpl/bool.hpp" -#include "boost/mpl/aux_/lambda_support.hpp" -#include "boost/config.hpp" - -#if defined(__SUNPRO_CC) +// 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) + +// $Source$ +// $Date$ +// $Revision$ + +#include +#include +#include +#include +#include + +#if defined(__SUNPRO_CC) && (__SUNPRO_CC < 0x570) # define BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \ - typedef mpl::bool_< C > type; \ + typedef ::boost::integral_constant type; \ enum { value = type::value }; \ /**/ # define BOOST_TT_AUX_BOOL_C_BASE(C) @@ -31,7 +27,7 @@ #elif defined(BOOST_MSVC) && BOOST_MSVC <= 1200 # define BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \ - typedef mpl::bool_< C > base_; \ + typedef ::boost::integral_constant base_; \ using base_::value; \ /**/ @@ -42,7 +38,7 @@ #endif #ifndef BOOST_TT_AUX_BOOL_C_BASE -# define BOOST_TT_AUX_BOOL_C_BASE(C) : mpl::bool_< C > +# define BOOST_TT_AUX_BOOL_C_BASE(C) : ::boost::integral_constant #endif diff --git a/deal.II/contrib/boost/include/boost/type_traits/detail/bool_trait_undef.hpp b/deal.II/contrib/boost/include/boost/type_traits/detail/bool_trait_undef.hpp index d3d957c044..cbdd4aa96b 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/detail/bool_trait_undef.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/detail/bool_trait_undef.hpp @@ -1,20 +1,15 @@ -//----------------------------------------------------------------------------- -// boost/type_traits/detail/bool_trait_undef.hpp header file -// See http://www.boost.org for updates, documentation, and revision history. -//----------------------------------------------------------------------------- -// -// Copyright (c) 2002 -// Aleksey Gurtovoy + +// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION + +// Copyright Aleksey Gurtovoy 2002-2004 // -// 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. +// 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) -// no include guards, the header is intended for multiple inclusion! +// $Source$ +// $Date$ +// $Revision$ #undef BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL #undef BOOST_TT_AUX_BOOL_C_BASE diff --git a/deal.II/contrib/boost/include/boost/type_traits/detail/cv_traits_impl.hpp b/deal.II/contrib/boost/include/boost/type_traits/detail/cv_traits_impl.hpp index f0e26f2dcf..eee7c7d2a2 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/detail/cv_traits_impl.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/detail/cv_traits_impl.hpp @@ -1,24 +1,33 @@ -// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard -// Hinnant & John Maddock 2000. Permission to copy, use, modify, -// sell and distribute this software is granted provided this -// copyright notice appears in all copies. This software is provided -// "as is" without express or implied warranty, and with no claim as -// to its suitability for any purpose. +// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard +// Hinnant & John Maddock 2000. +// 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 for most recent version including documentation. +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + #ifndef BOOST_TT_DETAIL_CV_TRAITS_IMPL_HPP_INCLUDED #define BOOST_TT_DETAIL_CV_TRAITS_IMPL_HPP_INCLUDED #include "boost/config.hpp" +#include "boost/detail/workaround.hpp" #ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION +// implementation helper: + + +#if !(BOOST_WORKAROUND(__GNUC__,== 3) && (__GNUC_MINOR__ <= 2)) namespace boost { namespace detail { - -// implementation helper: +#else +#include "boost/type_traits/detail/yes_no_type.hpp" +namespace boost { +namespace type_traits { +namespace gcc8503 { +#endif template struct cv_traits_imp {}; @@ -54,6 +63,32 @@ struct cv_traits_imp typedef T unqualified_type; }; +#if BOOST_WORKAROUND(__GNUC__,== 3) && BOOST_WORKAROUND(__GNUC_MINOR__, <= 2) +// We have to exclude function pointers +// (see http://gcc.gnu.org/bugzilla/show_bug.cgi?8503) +yes_type mini_funcptr_tester(...); +no_type mini_funcptr_tester(const volatile void*); + +} // namespace gcc8503 +} // namespace type_traits + +namespace detail { + +// Use the implementation above for non function pointers +template +struct cv_traits_imp : ::boost::type_traits::gcc8503::cv_traits_imp { }; + +// Functions are never cv-qualified +template struct cv_traits_imp +{ + BOOST_STATIC_CONSTANT(bool, is_const = false); + BOOST_STATIC_CONSTANT(bool, is_volatile = false); + typedef T unqualified_type; +}; + +#endif + } // namespace detail } // namespace boost diff --git a/deal.II/contrib/boost/include/boost/type_traits/detail/false_result.hpp b/deal.II/contrib/boost/include/boost/type_traits/detail/false_result.hpp index e0287cf759..b7ea18476e 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/detail/false_result.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/detail/false_result.hpp @@ -1,8 +1,10 @@ -// Copyright David Abrahams 2002. Permission to copy, use, -// modify, sell and distribute this software is granted provided this -// copyright notice appears in all copies. This software is provided -// "as is" without express or implied warranty, and with no claim as -// to its suitability for any purpose. +// Copyright David Abrahams 2002. +// 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/type_traits for most recent version including documentation. + #ifndef BOOST_TT_DETAIL_FALSE_RESULT_HPP_INCLUDED #define BOOST_TT_DETAIL_FALSE_RESULT_HPP_INCLUDED diff --git a/deal.II/contrib/boost/include/boost/type_traits/detail/ice_and.hpp b/deal.II/contrib/boost/include/boost/type_traits/detail/ice_and.hpp index 890cb618c1..92645b5625 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/detail/ice_and.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/detail/ice_and.hpp @@ -1,11 +1,10 @@ -// (C) Copyright John Maddock and Steve Cleary 2000. +// (C) Copyright John Maddock and Steve Cleary 2000. // -// Permission to copy, use, modify, sell and distribute this software is -// granted provided this copyright notice appears in all copies. This software -// is provided "as is" without express or implied warranty, and with no claim -// as to its suitability for any purpose. +// 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 for most recent version including documentation. +// See http://www.boost.org/libs/type_traits for most recent version including documentation. #ifndef BOOST_TT_DETAIL_ICE_AND_HPP_INCLUDED #define BOOST_TT_DETAIL_ICE_AND_HPP_INCLUDED diff --git a/deal.II/contrib/boost/include/boost/type_traits/detail/ice_eq.hpp b/deal.II/contrib/boost/include/boost/type_traits/detail/ice_eq.hpp index ba91e37de6..4c177f33d5 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/detail/ice_eq.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/detail/ice_eq.hpp @@ -1,11 +1,9 @@ -// (C) Copyright John Maddock and Steve Cleary 2000. +// (C) Copyright John Maddock and Steve Cleary 2000. +// 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 copy, use, modify, sell and distribute this software is -// granted provided this copyright notice appears in all copies. This software -// is provided "as is" without express or implied warranty, and with no claim -// as to its suitability for any purpose. -// -// See http://www.boost.org for most recent version including documentation. +// See http://www.boost.org/libs/type_traits for most recent version including documentation. #ifndef BOOST_TT_DETAIL_ICE_EQ_HPP_INCLUDED #define BOOST_TT_DETAIL_ICE_EQ_HPP_INCLUDED diff --git a/deal.II/contrib/boost/include/boost/type_traits/detail/ice_not.hpp b/deal.II/contrib/boost/include/boost/type_traits/detail/ice_not.hpp index 1c04873baa..6cac8408ca 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/detail/ice_not.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/detail/ice_not.hpp @@ -1,11 +1,9 @@ -// (C) Copyright John Maddock and Steve Cleary 2000. +// (C) Copyright John Maddock and Steve Cleary 2000. +// 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 copy, use, modify, sell and distribute this software is -// granted provided this copyright notice appears in all copies. This software -// is provided "as is" without express or implied warranty, and with no claim -// as to its suitability for any purpose. -// -// See http://www.boost.org for most recent version including documentation. +// See http://www.boost.org/libs/type_traits for most recent version including documentation. #ifndef BOOST_TT_DETAIL_ICE_NOT_HPP_INCLUDED #define BOOST_TT_DETAIL_ICE_NOT_HPP_INCLUDED diff --git a/deal.II/contrib/boost/include/boost/type_traits/detail/ice_or.hpp b/deal.II/contrib/boost/include/boost/type_traits/detail/ice_or.hpp index 0eca6499b3..e116e64266 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/detail/ice_or.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/detail/ice_or.hpp @@ -1,11 +1,9 @@ -// (C) Copyright John Maddock and Steve Cleary 2000. +// (C) Copyright John Maddock and Steve Cleary 2000. +// 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 copy, use, modify, sell and distribute this software is -// granted provided this copyright notice appears in all copies. This software -// is provided "as is" without express or implied warranty, and with no claim -// as to its suitability for any purpose. -// -// See http://www.boost.org for most recent version including documentation. +// See http://www.boost.org/libs/type_traits for most recent version including documentation. #ifndef BOOST_TT_DETAIL_ICE_OR_HPP_INCLUDED #define BOOST_TT_DETAIL_ICE_OR_HPP_INCLUDED diff --git a/deal.II/contrib/boost/include/boost/type_traits/detail/is_function_ptr_helper.hpp b/deal.II/contrib/boost/include/boost/type_traits/detail/is_function_ptr_helper.hpp index 0bdce95b3a..7a6fdda761 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/detail/is_function_ptr_helper.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/detail/is_function_ptr_helper.hpp @@ -1,15 +1,12 @@ -// Copyright (C) 2000 John Maddock (john_maddock@compuserve.com) -// Copyright (C) 2002 Aleksey Gurtovoy (agurtovoy@meta-comm.com) +// Copyright 2000 John Maddock (john@johnmaddock.co.uk) +// Copyright 2002 Aleksey Gurtovoy (agurtovoy@meta-comm.com) // -// Permission to copy and use this software is granted, -// provided this copyright notice appears in all copies. -// Permission to modify the code and to distribute modified code is granted, -// provided this copyright notice appears in all copies, and a notice -// that the code was modified is included with the copyright notice. +// 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). // -// This software is provided "as is" without express or implied warranty, -// and with no claim as to its suitability for any purpose. +// See http://www.boost.org/libs/type_traits for most recent version including documentation. #if !defined(BOOST_PP_IS_ITERATING) @@ -38,84 +35,162 @@ struct is_function_ptr_helper #if !defined(BOOST_TT_PREPROCESSING_MODE) // preprocessor-generated part, don't edit by hand! -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool,value = true); }; - -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool,value = true); }; - -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool,value = true); }; - -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool,value = true); }; - -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool,value = true); }; - -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool,value = true); }; - -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool,value = true); }; - -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool,value = true); }; - -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool,value = true); }; - -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool,value = true); }; - -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool,value = true); }; - -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool,value = true); }; - -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool,value = true); }; - -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool,value = true); }; - -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool,value = true); }; - -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool,value = true); }; - -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool,value = true); }; - -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool,value = true); }; - -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool,value = true); }; - -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool,value = true); }; - -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool,value = true); }; - -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool,value = true); }; - -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool,value = true); }; - -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool,value = true); }; - -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool,value = true); }; - -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool,value = true); }; - +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif #else #undef BOOST_STATIC_CONSTANT @@ -133,10 +208,13 @@ struct is_function_ptr_helper -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; - -#undef i +#define BOOST_PP_COUNTER BOOST_PP_FRAME_ITERATION(1) + +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +@#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; +@#endif +#undef BOOST_PP_COUNTER #endif // BOOST_PP_IS_ITERATING diff --git a/deal.II/contrib/boost/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp b/deal.II/contrib/boost/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp index 0e2da0999d..a9f0f5ec14 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp @@ -1,10 +1,11 @@ -// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, -// Aleksey Gurtovoy, Howard Hinnant & John Maddock 2000. -// Permission to copy, use, modify, sell and distribute this software -// is granted provided this copyright notice appears in all copies. -// This software is provided "as is" without express or implied warranty, -// and with no claim as to its suitability for any purpose. +// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, +// Aleksey Gurtovoy, Howard Hinnant & John Maddock 2000. +// 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/type_traits for most recent version including documentation. #if !defined(BOOST_PP_IS_ITERATING) @@ -31,292 +32,736 @@ struct is_mem_fun_pointer_impl }; #if !defined(BOOST_TT_PREPROCESSING_MODE) -// preprocessor-generated part, don't edit by hand! +// pre-processed code, don't edit, try GNU cpp with +// cpp -I../../../ -DBOOST_TT_PREPROCESSING_MODE -x c++ -P filename -template +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#if !((defined(__MWERKS__) && __MWERKS__ < 0x3000) || (defined(__IBMCPP__) && __IBMCPP__ <= 600)) -template +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif + +#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template + +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template + +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +#endif +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#if !((defined(__MWERKS__) && __MWERKS__ < 0x3000) || (defined(__IBMCPP__) && __IBMCPP__ <= 600)) -template +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif + +#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template + +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template + +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +#endif +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#if !((defined(__MWERKS__) && __MWERKS__ < 0x3000) || (defined(__IBMCPP__) && __IBMCPP__ <= 600)) -template +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif + +#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template + +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template + +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +#endif +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#if !((defined(__MWERKS__) && __MWERKS__ < 0x3000) || (defined(__IBMCPP__) && __IBMCPP__ <= 600)) -template +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif + +#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template + +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template + +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +#endif +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#if !((defined(__MWERKS__) && __MWERKS__ < 0x3000) || (defined(__IBMCPP__) && __IBMCPP__ <= 600)) -template +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif + +#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template + +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template + +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +#endif +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#if !((defined(__MWERKS__) && __MWERKS__ < 0x3000) || (defined(__IBMCPP__) && __IBMCPP__ <= 600)) -template +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif + +#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template + +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template + +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +#endif +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#if !((defined(__MWERKS__) && __MWERKS__ < 0x3000) || (defined(__IBMCPP__) && __IBMCPP__ <= 600)) -template +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif + +#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template + +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template + +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +#endif +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#if !((defined(__MWERKS__) && __MWERKS__ < 0x3000) || (defined(__IBMCPP__) && __IBMCPP__ <= 600)) -template +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif + +#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template + +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template + +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +#endif +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#if !((defined(__MWERKS__) && __MWERKS__ < 0x3000) || (defined(__IBMCPP__) && __IBMCPP__ <= 600)) -template +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif + +#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template + +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template + +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +#endif +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#if !((defined(__MWERKS__) && __MWERKS__ < 0x3000) || (defined(__IBMCPP__) && __IBMCPP__ <= 600)) -template +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif + +#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template + +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template + +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +#endif +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#if !((defined(__MWERKS__) && __MWERKS__ < 0x3000) || (defined(__IBMCPP__) && __IBMCPP__ <= 600)) -template +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif + +#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template + +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template + +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +#endif +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#if !((defined(__MWERKS__) && __MWERKS__ < 0x3000) || (defined(__IBMCPP__) && __IBMCPP__ <= 600)) -template +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif + +#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template + +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template + +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +#endif +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#if !((defined(__MWERKS__) && __MWERKS__ < 0x3000) || (defined(__IBMCPP__) && __IBMCPP__ <= 600)) -template +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif + +#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template + +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template + +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +#endif +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#if !((defined(__MWERKS__) && __MWERKS__ < 0x3000) || (defined(__IBMCPP__) && __IBMCPP__ <= 600)) -template +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif + +#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template + +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template + +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +#endif +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#if !((defined(__MWERKS__) && __MWERKS__ < 0x3000) || (defined(__IBMCPP__) && __IBMCPP__ <= 600)) -template +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif + +#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template + +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template + +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +#endif +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#if !((defined(__MWERKS__) && __MWERKS__ < 0x3000) || (defined(__IBMCPP__) && __IBMCPP__ <= 600)) -template +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif + +#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template + +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template + +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +#endif +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#if !((defined(__MWERKS__) && __MWERKS__ < 0x3000) || (defined(__IBMCPP__) && __IBMCPP__ <= 600)) -template +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif + +#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template + +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template + +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +#endif +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#if !((defined(__MWERKS__) && __MWERKS__ < 0x3000) || (defined(__IBMCPP__) && __IBMCPP__ <= 600)) -template +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif + +#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template + +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template + +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +#endif +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#if !((defined(__MWERKS__) && __MWERKS__ < 0x3000) || (defined(__IBMCPP__) && __IBMCPP__ <= 600)) -template +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif + +#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template + +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template + +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +#endif +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#if !((defined(__MWERKS__) && __MWERKS__ < 0x3000) || (defined(__IBMCPP__) && __IBMCPP__ <= 600)) -template +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif + +#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template + +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template + +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +#endif +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#if !((defined(__MWERKS__) && __MWERKS__ < 0x3000) || (defined(__IBMCPP__) && __IBMCPP__ <= 600)) -template +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif + +#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template + +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template + +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +#endif +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#if !((defined(__MWERKS__) && __MWERKS__ < 0x3000) || (defined(__IBMCPP__) && __IBMCPP__ <= 600)) -template +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif + +#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template + +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template + +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +#endif +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#if !((defined(__MWERKS__) && __MWERKS__ < 0x3000) || (defined(__IBMCPP__) && __IBMCPP__ <= 600)) -template +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif + +#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template + +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template + +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +#endif +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#if !((defined(__MWERKS__) && __MWERKS__ < 0x3000) || (defined(__IBMCPP__) && __IBMCPP__ <= 600)) -template +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif + +#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template + +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template + +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +#endif +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#if !((defined(__MWERKS__) && __MWERKS__ < 0x3000) || (defined(__IBMCPP__) && __IBMCPP__ <= 600)) -template +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif + +#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template + +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template + +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif +#endif +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#if !((defined(__MWERKS__) && __MWERKS__ < 0x3000) || (defined(__IBMCPP__) && __IBMCPP__ <= 600)) -template +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif + +#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template + +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template + +template struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +#endif #endif #else @@ -336,23 +781,37 @@ struct is_mem_fun_pointer_impl -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +@#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +@#endif -// Metrowerks and Visual Age think this creates ambiguities -//: #if !((defined(__MWERKS__) && __MWERKS__ < 0x3000) || (defined(__IBMCPP__) && __IBMCPP__ <= 600)) -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +@#if !defined(BOOST_TT_NO_CV_FUNC_TEST) +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -//: #endif +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +@#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#undef i +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; + +template +struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; +@#endif +@#endif + +#undef BOOST_PP_COUNTER #endif // BOOST_PP_IS_ITERATING + diff --git a/deal.II/contrib/boost/include/boost/type_traits/detail/size_t_trait_def.hpp b/deal.II/contrib/boost/include/boost/type_traits/detail/size_t_trait_def.hpp index d3890e897d..d09d9cd241 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/detail/size_t_trait_def.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/detail/size_t_trait_def.hpp @@ -1,32 +1,30 @@ -//----------------------------------------------------------------------------- -// boost/type_traits/detail/size_t_trait_def.hpp header file -// See http://www.boost.org for updates, documentation, and revision history. -//----------------------------------------------------------------------------- -// -// Copyright (c) 2002 -// Aleksey Gurtovoy + +// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION + +// Copyright Aleksey Gurtovoy 2002-2004 // -// 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. +// 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) -// no include guards, the header is intended for multiple inclusion! +// $Source$ +// $Date$ +// $Revision$ -#include "boost/type_traits/detail/template_arity_spec.hpp" -#include "boost/mpl/size_t.hpp" -#include "boost/mpl/aux_/lambda_support.hpp" +#include +#include +#include +#include #include #if !defined(BOOST_MSVC) || BOOST_MSVC > 1200 +# define BOOST_TT_AUX_SIZE_T_BASE(C) ::boost::integral_constant # define BOOST_TT_AUX_SIZE_T_TRAIT_VALUE_DECL(C) /**/ #else +# define BOOST_TT_AUX_SIZE_T_BASE(C) ::boost::mpl::size_t # define BOOST_TT_AUX_SIZE_T_TRAIT_VALUE_DECL(C) \ - typedef mpl::size_t< C > base_; \ + typedef ::boost::mpl::size_t base_; \ using base_::value; \ /**/ #endif @@ -34,7 +32,7 @@ #define BOOST_TT_AUX_SIZE_T_TRAIT_DEF1(trait,T,C) \ template< typename T > struct trait \ - : mpl::size_t< C > \ + : BOOST_TT_AUX_SIZE_T_BASE(C) \ { \ BOOST_TT_AUX_SIZE_T_TRAIT_VALUE_DECL(C) \ BOOST_MPL_AUX_LAMBDA_SUPPORT(1,trait,(T)) \ @@ -45,7 +43,7 @@ BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(1,trait) \ #define BOOST_TT_AUX_SIZE_T_TRAIT_SPEC1(trait,spec,C) \ template<> struct trait \ - : mpl::size_t< C > \ + : BOOST_TT_AUX_SIZE_T_BASE(C) \ { \ BOOST_TT_AUX_SIZE_T_TRAIT_VALUE_DECL(C) \ BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(1,trait,(spec)) \ @@ -54,7 +52,7 @@ template<> struct trait \ #define BOOST_TT_AUX_SIZE_T_TRAIT_PARTIAL_SPEC1_1(param,trait,spec,C) \ template< param > struct trait \ - : mpl::size_t< C > \ + : BOOST_TT_AUX_SIZE_T_BASE(C) \ { \ }; \ /**/ diff --git a/deal.II/contrib/boost/include/boost/type_traits/detail/size_t_trait_undef.hpp b/deal.II/contrib/boost/include/boost/type_traits/detail/size_t_trait_undef.hpp index cc1c608718..1694fac772 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/detail/size_t_trait_undef.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/detail/size_t_trait_undef.hpp @@ -1,20 +1,15 @@ -//----------------------------------------------------------------------------- -// boost/type_traits/detail/size_t_trait_undef.hpp header file -// See http://www.boost.org for updates, documentation, and revision history. -//----------------------------------------------------------------------------- -// -// Copyright (c) 2002 -// Aleksey Gurtovoy + +// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION + +// Copyright Aleksey Gurtovoy 2002-2004 // -// 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. +// 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) -// no include guards, the header is intended for multiple inclusion! +// $Source$ +// $Date$ +// $Revision$ #undef BOOST_TT_AUX_SIZE_T_TRAIT_DEF1 #undef BOOST_TT_AUX_SIZE_T_TRAIT_SPEC1 diff --git a/deal.II/contrib/boost/include/boost/type_traits/detail/template_arity_spec.hpp b/deal.II/contrib/boost/include/boost/type_traits/detail/template_arity_spec.hpp index 81e79217de..fe9b422e83 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/detail/template_arity_spec.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/detail/template_arity_spec.hpp @@ -1,37 +1,28 @@ -//----------------------------------------------------------------------------- -// boost/type_traits/detail/template_arity_spec.hpp header file -// See http://www.boost.org for updates, documentation, and revision history. -//----------------------------------------------------------------------------- -// -// Copyright (c) 2002 -// 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. -// no include guards, the header is intended for multiple inclusion! +// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION + +// Copyright Aleksey Gurtovoy 2002-2004 +// +// 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) -#include "boost/mpl/aux_/template_arity_fwd.hpp" -#include "boost/mpl/aux_/preprocessor/params.hpp" -#include "boost/mpl/aux_/lambda_support.hpp" -#include "boost/mpl/aux_/config/overload_resolution.hpp" -#include "boost/config.hpp" +#include +#include +#include +#include +#include -#if defined(BOOST_MPL_NO_FULL_LAMBDA_SUPPORT) && \ - defined(BOOST_MPL_BROKEN_OVERLOAD_RESOLUTION) +#if defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) \ + && defined(BOOST_MPL_CFG_BROKEN_OVERLOAD_RESOLUTION) # define BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(i, name) \ namespace mpl { namespace aux { \ template< BOOST_MPL_PP_PARAMS(i, typename T) > \ struct template_arity< \ - name< BOOST_MPL_PP_PARAMS(i, T) > \ - > \ + name< BOOST_MPL_PP_PARAMS(i, T) > \ + > \ + : int_ \ { \ - BOOST_STATIC_CONSTANT(int, value = i ); \ }; \ }} \ /**/ diff --git a/deal.II/contrib/boost/include/boost/type_traits/detail/type_trait_def.hpp b/deal.II/contrib/boost/include/boost/type_traits/detail/type_trait_def.hpp index 0b5d492ad1..7438267010 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/detail/type_trait_def.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/detail/type_trait_def.hpp @@ -1,23 +1,18 @@ -//----------------------------------------------------------------------------- -// boost/type_traits/detail/type_trait_def.hpp header file -// See http://www.boost.org for updates, documentation, and revision history. -//----------------------------------------------------------------------------- -// -// Copyright (c) 2002 -// Aleksey Gurtovoy + +// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION + +// Copyright Aleksey Gurtovoy 2002-2004 // -// 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. +// 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) -// no include guards, the header is intended for multiple inclusion! +// $Source$ +// $Date$ +// $Revision$ -#include "boost/type_traits/detail/template_arity_spec.hpp" -#include "boost/mpl/aux_/lambda_support.hpp" +#include +#include #define BOOST_TT_AUX_TYPE_TRAIT_DEF1(trait,T,result) \ template< typename T > struct trait \ diff --git a/deal.II/contrib/boost/include/boost/type_traits/detail/type_trait_undef.hpp b/deal.II/contrib/boost/include/boost/type_traits/detail/type_trait_undef.hpp index 9259e6a1f6..d8edf66275 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/detail/type_trait_undef.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/detail/type_trait_undef.hpp @@ -1,20 +1,15 @@ -//----------------------------------------------------------------------------- -// boost/type_traits/detail/type_trait_undef.hpp header file -// See http://www.boost.org for updates, documentation, and revision history. -//----------------------------------------------------------------------------- -// -// Copyright (c) 2002 -// Aleksey Gurtovoy + +// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION + +// Copyright Aleksey Gurtovoy 2002-2004 // -// 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. +// 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) -// no include guards, the header is intended for multiple inclusion! +// $Source$ +// $Date$ +// $Revision$ #undef BOOST_TT_AUX_TYPE_TRAIT_DEF1 #undef BOOST_TT_AUX_TYPE_TRAIT_SPEC1 diff --git a/deal.II/contrib/boost/include/boost/type_traits/detail/yes_no_type.hpp b/deal.II/contrib/boost/include/boost/type_traits/detail/yes_no_type.hpp index 2bc4f191a1..f583730220 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/detail/yes_no_type.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/detail/yes_no_type.hpp @@ -1,13 +1,12 @@ -// (C) Copyright John Maddock and Steve Cleary 2000. -// Permission to copy, use, modify, sell and distribute this software is -// granted provided this copyright notice appears in all copies. This software -// is provided "as is" without express or implied warranty, and with no claim -// as to its suitability for any purpose. - -// See http://www.boost.org for most recent version including documentation. +// (C) Copyright John Maddock and Steve Cleary 2000. +// 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/type_traits for most recent version including documentation. // -// macros and helpers for working with integral-constant-expressions. +// macros and helpers for working with integral-constant-expressions. #ifndef BOOST_TT_DETAIL_YES_NO_TYPE_HPP_INCLUDED #define BOOST_TT_DETAIL_YES_NO_TYPE_HPP_INCLUDED diff --git a/deal.II/contrib/boost/include/boost/type_traits/function_traits.hpp b/deal.II/contrib/boost/include/boost/type_traits/function_traits.hpp index c38d76e213..36efaecdee 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/function_traits.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/function_traits.hpp @@ -1,14 +1,10 @@ -// Copyright (C) 2000 John Maddock (john_maddock@compuserve.com) +// Copyright 2000 John Maddock (john@johnmaddock.co.uk) +// 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 copy and use this software is granted, -// provided this copyright notice appears in all copies. -// Permission to modify the code and to distribute modified code is granted, -// provided this copyright notice appears in all copies, and a notice -// that the code was modified is included with the copyright notice. -// -// This software is provided "as is" without express or implied warranty, -// and with no claim as to its suitability for any purpose. +// See http://www.boost.org/libs/type_traits for most recent version including documentation. #ifndef BOOST_TT_FUNCTION_TRAITS_HPP_INCLUDED #define BOOST_TT_FUNCTION_TRAITS_HPP_INCLUDED @@ -37,6 +33,7 @@ struct function_traits_helper BOOST_STATIC_CONSTANT(int, arity = 1); typedef R result_type; typedef T1 arg1_type; + typedef T1 argument_type; }; template @@ -46,6 +43,8 @@ struct function_traits_helper typedef R result_type; typedef T1 arg1_type; typedef T2 arg2_type; + typedef T1 first_argument_type; + typedef T2 second_argument_type; }; template diff --git a/deal.II/contrib/boost/include/boost/type_traits/has_nothrow_assign.hpp b/deal.II/contrib/boost/include/boost/type_traits/has_nothrow_assign.hpp index a4a853176f..2f52924565 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/has_nothrow_assign.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/has_nothrow_assign.hpp @@ -1,11 +1,10 @@ -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// Permission to copy, use, modify, sell and distribute this software is -// granted provided this copyright notice appears in all copies. This software -// is provided "as is" without express or implied warranty, and with no claim -// as to its suitability for any purpose. +// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. +// 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 for most recent version including documentation. +// See http://www.boost.org/libs/type_traits for most recent version including documentation. #ifndef BOOST_TT_HAS_NOTHROW_ASSIGN_HPP_INCLUDED #define BOOST_TT_HAS_NOTHROW_ASSIGN_HPP_INCLUDED @@ -17,7 +16,20 @@ namespace boost { -BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_nothrow_assign,T,::boost::has_trivial_assign::value) +namespace detail{ + +template +struct has_nothrow_assign_imp{ + BOOST_STATIC_CONSTANT(bool, value = + (::boost::type_traits::ice_or< + ::boost::has_trivial_assign::value, + BOOST_HAS_NOTHROW_ASSIGN(T) + >::value)); +}; + +} + +BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_nothrow_assign,T,::boost::detail::has_nothrow_assign_imp::value) } // namespace boost diff --git a/deal.II/contrib/boost/include/boost/type_traits/has_nothrow_constructor.hpp b/deal.II/contrib/boost/include/boost/type_traits/has_nothrow_constructor.hpp index c60c0cbb6a..f3c7ce764b 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/has_nothrow_constructor.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/has_nothrow_constructor.hpp @@ -1,11 +1,10 @@ -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// Permission to copy, use, modify, sell and distribute this software is -// granted provided this copyright notice appears in all copies. This software -// is provided "as is" without express or implied warranty, and with no claim -// as to its suitability for any purpose. +// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. +// 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 for most recent version including documentation. +// See http://www.boost.org/libs/type_traits for most recent version including documentation. #ifndef BOOST_TT_HAS_NOTHROW_CONSTRUCTOR_HPP_INCLUDED #define BOOST_TT_HAS_NOTHROW_CONSTRUCTOR_HPP_INCLUDED @@ -17,7 +16,20 @@ namespace boost { -BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_nothrow_constructor,T,::boost::has_trivial_constructor::value) +namespace detail{ + +template +struct has_nothrow_constructor_imp{ + BOOST_STATIC_CONSTANT(bool, value = + (::boost::type_traits::ice_or< + ::boost::has_trivial_constructor::value, + BOOST_HAS_NOTHROW_CONSTRUCTOR(T) + >::value)); +}; + +} + +BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_nothrow_constructor,T,::boost::detail::has_nothrow_constructor_imp::value) } // namespace boost diff --git a/deal.II/contrib/boost/include/boost/type_traits/has_nothrow_copy.hpp b/deal.II/contrib/boost/include/boost/type_traits/has_nothrow_copy.hpp index 224b154863..5c83412e0e 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/has_nothrow_copy.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/has_nothrow_copy.hpp @@ -1,11 +1,10 @@ -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// Permission to copy, use, modify, sell and distribute this software is -// granted provided this copyright notice appears in all copies. This software -// is provided "as is" without express or implied warranty, and with no claim -// as to its suitability for any purpose. +// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. +// 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 for most recent version including documentation. +// See http://www.boost.org/libs/type_traits for most recent version including documentation. #ifndef BOOST_TT_HAS_NOTHROW_COPY_HPP_INCLUDED #define BOOST_TT_HAS_NOTHROW_COPY_HPP_INCLUDED @@ -17,7 +16,20 @@ namespace boost { -BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_nothrow_copy,T,::boost::has_trivial_copy::value) +namespace detail{ + +template +struct has_nothrow_copy_imp{ + BOOST_STATIC_CONSTANT(bool, value = + (::boost::type_traits::ice_or< + ::boost::has_trivial_copy::value, + BOOST_HAS_NOTHROW_COPY(T) + >::value)); +}; + +} + +BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_nothrow_copy,T,::boost::detail::has_nothrow_copy_imp::value) } // namespace boost diff --git a/deal.II/contrib/boost/include/boost/type_traits/has_nothrow_destructor.hpp b/deal.II/contrib/boost/include/boost/type_traits/has_nothrow_destructor.hpp index 9eea57e0d8..8df6315e3b 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/has_nothrow_destructor.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/has_nothrow_destructor.hpp @@ -1,11 +1,10 @@ -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// Permission to copy, use, modify, sell and distribute this software is -// granted provided this copyright notice appears in all copies. This software -// is provided "as is" without express or implied warranty, and with no claim -// as to its suitability for any purpose. +// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. +// 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 for most recent version including documentation. +// See http://www.boost.org/libs/type_traits for most recent version including documentation. #ifndef BOOST_TT_HAS_NOTHROW_DESTRUCTOR_HPP_INCLUDED #define BOOST_TT_HAS_NOTHROW_DESTRUCTOR_HPP_INCLUDED diff --git a/deal.II/contrib/boost/include/boost/type_traits/has_trivial_assign.hpp b/deal.II/contrib/boost/include/boost/type_traits/has_trivial_assign.hpp index c4f6b45521..d3ed0ff8d7 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/has_trivial_assign.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/has_trivial_assign.hpp @@ -1,11 +1,10 @@ -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// Permission to copy, use, modify, sell and distribute this software is -// granted provided this copyright notice appears in all copies. This software -// is provided "as is" without express or implied warranty, and with no claim -// as to its suitability for any purpose. +// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. +// 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 for most recent version including documentation. +// See http://www.boost.org/libs/type_traits for most recent version including documentation. #ifndef BOOST_TT_HAS_TRIVIAL_ASSIGN_HPP_INCLUDED #define BOOST_TT_HAS_TRIVIAL_ASSIGN_HPP_INCLUDED diff --git a/deal.II/contrib/boost/include/boost/type_traits/has_trivial_constructor.hpp b/deal.II/contrib/boost/include/boost/type_traits/has_trivial_constructor.hpp index d867251baf..5d1c3b6043 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/has_trivial_constructor.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/has_trivial_constructor.hpp @@ -1,11 +1,10 @@ -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// Permission to copy, use, modify, sell and distribute this software is -// granted provided this copyright notice appears in all copies. This software -// is provided "as is" without express or implied warranty, and with no claim -// as to its suitability for any purpose. +// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. +// 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 for most recent version including documentation. +// See http://www.boost.org/libs/type_traits for most recent version including documentation. #ifndef BOOST_TT_HAS_TRIVIAL_CONSTRUCTOR_HPP_INCLUDED #define BOOST_TT_HAS_TRIVIAL_CONSTRUCTOR_HPP_INCLUDED diff --git a/deal.II/contrib/boost/include/boost/type_traits/has_trivial_copy.hpp b/deal.II/contrib/boost/include/boost/type_traits/has_trivial_copy.hpp index 8decc67f63..76ebfcf764 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/has_trivial_copy.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/has_trivial_copy.hpp @@ -1,11 +1,10 @@ -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// Permission to copy, use, modify, sell and distribute this software is -// granted provided this copyright notice appears in all copies. This software -// is provided "as is" without express or implied warranty, and with no claim -// as to its suitability for any purpose. +// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. +// 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 for most recent version including documentation. +// See http://www.boost.org/libs/type_traits for most recent version including documentation. #ifndef BOOST_TT_HAS_TRIVIAL_COPY_HPP_INCLUDED #define BOOST_TT_HAS_TRIVIAL_COPY_HPP_INCLUDED diff --git a/deal.II/contrib/boost/include/boost/type_traits/has_trivial_destructor.hpp b/deal.II/contrib/boost/include/boost/type_traits/has_trivial_destructor.hpp index 7e3bbf1d28..257b327f52 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/has_trivial_destructor.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/has_trivial_destructor.hpp @@ -1,11 +1,10 @@ -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// Permission to copy, use, modify, sell and distribute this software is -// granted provided this copyright notice appears in all copies. This software -// is provided "as is" without express or implied warranty, and with no claim -// as to its suitability for any purpose. +// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. +// 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 for most recent version including documentation. +// See http://www.boost.org/libs/type_traits for most recent version including documentation. #ifndef BOOST_TT_HAS_TRIVIAL_DESTRUCTOR_HPP_INCLUDED #define BOOST_TT_HAS_TRIVIAL_DESTRUCTOR_HPP_INCLUDED diff --git a/deal.II/contrib/boost/include/boost/type_traits/ice.hpp b/deal.II/contrib/boost/include/boost/type_traits/ice.hpp index 0195136090..2ba08160bf 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/ice.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/ice.hpp @@ -1,11 +1,10 @@ // (C) Copyright John Maddock and Steve Cleary 2000. -// Permission to copy, use, modify, sell and -// distribute this software is granted provided this copyright notice appears -// in all copies. This software is provided "as is" without express or implied -// warranty, and with no claim as to its suitability for any purpose. - -// See http://www.boost.org for most recent version including documentation. +// 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/type_traits for most recent version including documentation. // // macros and helpers for working with integral-constant-expressions. diff --git a/deal.II/contrib/boost/include/boost/type_traits/intrinsics.hpp b/deal.II/contrib/boost/include/boost/type_traits/intrinsics.hpp index f5da3ef256..f993613a91 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/intrinsics.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/intrinsics.hpp @@ -1,11 +1,10 @@ -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// Permission to copy, use, modify, sell and distribute this software is -// granted provided this copyright notice appears in all copies. This software -// is provided "as is" without express or implied warranty, and with no claim -// as to its suitability for any purpose. +// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. +// 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 for most recent version including documentation. +// See http://www.boost.org/libs/type_traits for most recent version including documentation. #ifndef BOOST_TT_INTRINSICS_HPP_INCLUDED #define BOOST_TT_INTRINSICS_HPP_INCLUDED @@ -28,6 +27,10 @@ // BOOST_HAS_TRIVIAL_COPY(T) should evaluate to true if T(t) <==> memcpy // BOOST_HAS_TRIVIAL_ASSIGN(T) should evaluate to true if t = u <==> memcpy // BOOST_HAS_TRIVIAL_DESTRUCTOR(T) should evaluate to true if ~T() has no effect +// BOOST_HAS_NOTHROW_CONSTRUCTOR(T) should evaluate to true if "T x;" can not throw +// BOOST_HAS_NOTHROW_COPY(T) should evaluate to true if T(t) can not throw +// BOOST_HAS_NOTHROW_ASSIGN(T) should evaluate to true if t = u can not throw +// BOOST_HAS_VIRTUAL_DESTRUCTOR(T) should evaluate to true T has a virtual destructor #ifdef BOOST_HAS_SGI_TYPE_TRAITS // Hook into SGI's __type_traits class, this will pick up user supplied @@ -39,6 +42,10 @@ # define BOOST_HAS_TRIVIAL_COPY(T) ::boost::is_same< typename ::__type_traits::has_trivial_copy_constructor, ::__true_type>::value # define BOOST_HAS_TRIVIAL_ASSIGN(T) ::boost::is_same< typename ::__type_traits::has_trivial_assignment_operator, ::__true_type>::value # define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) ::boost::is_same< typename ::__type_traits::has_trivial_destructor, ::__true_type>::value + +# ifdef __sgi +# define BOOST_HAS_TYPE_TRAITS_INTRINSICS +# endif #endif #if defined(__MSL_CPP__) && (__MSL_CPP__ >= 0x8000) @@ -53,8 +60,25 @@ # define BOOST_HAS_TRIVIAL_COPY(T) BOOST_STD_EXTENSION_NAMESPACE::has_trivial_copy_ctor::value # define BOOST_HAS_TRIVIAL_ASSIGN(T) BOOST_STD_EXTENSION_NAMESPACE::has_trivial_assignment::value # define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) BOOST_STD_EXTENSION_NAMESPACE::has_trivial_dtor::value +# define BOOST_HAS_TYPE_TRAITS_INTRINSICS +#endif + +#if defined(BOOST_MSVC) && defined(_MSC_FULL_VER) && (_MSC_FULL_VER >=140050215) +# define BOOST_IS_UNION(T) __is_union(T) +# define BOOST_IS_POD(T) __is_pod(T) +# define BOOST_IS_EMPTY(T) __is_empty(T) +# define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) __has_trivial_constructor(T) +# define BOOST_HAS_TRIVIAL_COPY(T) __has_trivial_copy(T) +# define BOOST_HAS_TRIVIAL_ASSIGN(T) __has_trivial_assign(T) +# define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) __has_trivial_destructor(T) +# define BOOST_HAS_NOTHROW_CONSTRUCTOR(T) __has_nothrow_constructor(T) +# define BOOST_HAS_NOTHROW_COPY(T) __has_nothrow_copy(T) +# define BOOST_HAS_NOTHROW_ASSIGN(T) __has_nothrow_assign(T) +# define BOOST_HAS_VIRTUAL_DESTRUCTOR(T) __has_virtual_destructor(T) +# define BOOST_HAS_TYPE_TRAITS_INTRINSICS #endif + #ifndef BOOST_IS_UNION # define BOOST_IS_UNION(T) false #endif @@ -83,6 +107,22 @@ # define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) false #endif +#ifndef BOOST_HAS_NOTHROW_CONSTRUCTOR +# define BOOST_HAS_NOTHROW_CONSTRUCTOR(T) false +#endif + +#ifndef BOOST_HAS_NOTHROW_COPY +# define BOOST_HAS_NOTHROW_COPY(T) false +#endif + +#ifndef BOOST_HAS_NOTHROW_ASSIGN +# define BOOST_HAS_NOTHROW_ASSIGN(T) false +#endif + +#ifndef BOOST_HAS_VIRTUAL_DESTRUCTOR +# define BOOST_HAS_VIRTUAL_DESTRUCTOR(T) false +#endif + #endif // BOOST_TT_INTRINSICS_HPP_INCLUDED diff --git a/deal.II/contrib/boost/include/boost/type_traits/is_arithmetic.hpp b/deal.II/contrib/boost/include/boost/type_traits/is_arithmetic.hpp index 21c87ae587..ec57661855 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/is_arithmetic.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/is_arithmetic.hpp @@ -1,11 +1,10 @@ -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// Permission to copy, use, modify, sell and distribute this software is -// granted provided this copyright notice appears in all copies. This software -// is provided "as is" without express or implied warranty, and with no claim -// as to its suitability for any purpose. +// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. +// 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 for most recent version including documentation. +// See http://www.boost.org/libs/type_traits for most recent version including documentation. #ifndef BOOST_TT_IS_ARITHMETIC_HPP_INCLUDED #define BOOST_TT_IS_ARITHMETIC_HPP_INCLUDED diff --git a/deal.II/contrib/boost/include/boost/type_traits/is_array.hpp b/deal.II/contrib/boost/include/boost/type_traits/is_array.hpp index b2fb26111b..a3ec8e4784 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/is_array.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/is_array.hpp @@ -1,12 +1,15 @@ -// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard -// Hinnant & John Maddock 2000. Permission to copy, use, modify, -// sell and distribute this software is granted provided this -// copyright notice appears in all copies. This software is provided -// "as is" without express or implied warranty, and with no claim as -// to its suitability for any purpose. +// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard +// Hinnant & John Maddock 2000. +// 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 for most recent version including documentation. +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + + +// Some fixes for is_array are based on a newgroup posting by Jonathan Lundquist. + #ifndef BOOST_TT_IS_ARRAY_HPP_INCLUDED #define BOOST_TT_IS_ARRAY_HPP_INCLUDED @@ -28,10 +31,18 @@ namespace boost { #ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_array,T,false) +#if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS) BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,is_array,T[N],true) BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,is_array,T const[N],true) BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,is_array,T volatile[N],true) BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,is_array,T const volatile[N],true) +#if !BOOST_WORKAROUND(__BORLANDC__, < 0x600) && !defined(__IBMCPP__) && !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) +BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_array,T[],true) +BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_array,T const[],true) +BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_array,T volatile[],true) +BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_array,T const volatile[],true) +#endif +#endif #else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION diff --git a/deal.II/contrib/boost/include/boost/type_traits/is_base_and_derived.hpp b/deal.II/contrib/boost/include/boost/type_traits/is_base_and_derived.hpp index 05e4f34b27..cf420d8bcb 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/is_base_and_derived.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/is_base_and_derived.hpp @@ -1,12 +1,11 @@ -// (C) Copyright Rani Sharoni 2003. -// Permission to copy, use, modify, sell and distribute this software is -// granted provided this copyright notice appears in all copies. This software -// is provided "as is" without express or implied warranty, and with no claim -// as to its suitability for any purpose. +// (C) Copyright Rani Sharoni 2003. +// 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 for most recent version including documentation. - +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + #ifndef BOOST_TT_IS_BASE_AND_DERIVED_HPP_INCLUDED #define BOOST_TT_IS_BASE_AND_DERIVED_HPP_INCLUDED @@ -24,9 +23,11 @@ namespace boost { namespace detail { -#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x570)) \ +#if !BOOST_WORKAROUND(__BORLANDC__, <= 0x570) \ && !BOOST_WORKAROUND(__SUNPRO_CC , BOOST_TESTED_AT(0x540)) \ - && !BOOST_WORKAROUND(__EDG_VERSION__, <= 243) + && !BOOST_WORKAROUND(__EDG_VERSION__, <= 243) \ + && !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) + // The EDG version number is a lower estimate. // It is not currently known which EDG version // exactly fixes the problem. @@ -57,18 +58,18 @@ UDC - User-defined conversion A user-defined conversion sequence consists of an SC, followed by an UDC, followed by another SC. Either SC may be the identity conversion. -When passing the default-constructed Host object to the overloaded check() +When passing the default-constructed Host object to the overloaded check_sig() functions (initialization 8.5/14/4/3), we have several viable implicit conversion sequences: -For "static no_type check(B const volatile *, int)" we have the conversion +For "static no_type check_sig(B const volatile *, int)" we have the conversion sequences: C -> C const (SC - Qualification Adjustment) -> B const volatile* (UDC) C -> D const volatile* (UDC) -> B1 const volatile* / B2 const volatile* -> B const volatile* (SC - Conversion) -For "static yes_type check(D const volatile *, T)" we have the conversion +For "static yes_type check_sig(D const volatile *, T)" we have the conversion sequence: C -> D const volatile* (UDC) @@ -92,12 +93,12 @@ eliminated before it could possibly cause ambiguity or access violation. If D is not derived from B, it has to choose between C -> C const -> B const volatile* for the first function, and C -> D const volatile* for the second function, which are just as good (both requires a UDC, 13.3.3.2), had it not -been for the fact that "static no_type check(B const volatile *, int)" is +been for the fact that "static no_type check_sig(B const volatile *, int)" is not templated, which makes C -> C const -> B const volatile* the best choice (13.3.3/1/4), resulting in "no". Also, if Host::operator B const volatile* hadn't been const, the two -conversion sequences for "static no_type check(B const volatile *, int)", in +conversion sequences for "static no_type check_sig(B const volatile *, int)", in the case where D is derived from B, would have been ambiguous. See also @@ -109,9 +110,19 @@ google.com and links therein. template struct bd_helper { + // + // This VC7.1 specific workaround stops the compiler from generating + // an internal compiler error when compiling with /vmg (thanks to + // Aleksey Gurtovoy for figuring out the workaround). + // +#if !BOOST_WORKAROUND(BOOST_MSVC, == 1310) template - static type_traits::yes_type check(D const volatile *, T); - static type_traits::no_type check(B const volatile *, int); + static type_traits::yes_type check_sig(D const volatile *, T); + static type_traits::no_type check_sig(B const volatile *, int); +#else + static type_traits::yes_type check_sig(D const volatile *, long); + static type_traits::no_type check_sig(B const volatile * const&, int); +#endif }; template @@ -119,12 +130,16 @@ struct is_base_and_derived_impl2 { struct Host { +#if !BOOST_WORKAROUND(BOOST_MSVC, == 1310) operator B const volatile *() const; +#else + operator B const volatile * const&() const; +#endif operator D const volatile *(); }; BOOST_STATIC_CONSTANT(bool, value = - sizeof(bd_helper::check(Host(), 0)) == sizeof(type_traits::yes_type)); + sizeof(bd_helper::check_sig(Host(), 0)) == sizeof(type_traits::yes_type)); }; #else diff --git a/deal.II/contrib/boost/include/boost/type_traits/is_class.hpp b/deal.II/contrib/boost/include/boost/type_traits/is_class.hpp index 15d8df9ef2..038c6662e2 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/is_class.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/is_class.hpp @@ -1,11 +1,11 @@ // (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard -// Hinnant & John Maddock 2000-2002. Permission to copy, use, -// modify, sell and distribute this software is granted provided this -// copyright notice appears in all copies. This software is provided -// "as is" without express or implied warranty, and with no claim as -// to its suitability for any purpose. +// Hinnant & John Maddock 2000-2003. +// 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 for most recent version including documentation. +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + #ifndef BOOST_TT_IS_CLASS_HPP_INCLUDED #define BOOST_TT_IS_CLASS_HPP_INCLUDED @@ -25,6 +25,10 @@ # include "boost/type_traits/is_function.hpp" #endif +#ifdef __EDG_VERSION__ +# include "boost/type_traits/remove_cv.hpp" +#endif + // should be the last #include #include "boost/type_traits/detail/bool_trait_def.hpp" @@ -44,6 +48,24 @@ namespace detail { // is_class<> metafunction due to Paul Mensonides // (leavings@attbi.com). For more details: // http://groups.google.com/groups?hl=en&selm=000001c1cc83%24e154d5e0%247772e50c%40c161550a&rnum=1 +#if defined(__GNUC__) && !defined(__EDG_VERSION__) + +template ::boost::type_traits::yes_type is_class_tester(void(U::*)(void)); +template ::boost::type_traits::no_type is_class_tester(...); + +template +struct is_class_impl +{ + + BOOST_STATIC_CONSTANT(bool, value = + (::boost::type_traits::ice_and< + sizeof(is_class_tester(0)) == sizeof(::boost::type_traits::yes_type), + ::boost::type_traits::ice_not< ::boost::is_union::value >::value + >::value) + ); +}; + +#else template struct is_class_impl @@ -51,7 +73,7 @@ struct is_class_impl template static ::boost::type_traits::yes_type is_class_tester(void(U::*)(void)); template static ::boost::type_traits::no_type is_class_tester(...); - BOOST_STATIC_CONSTANT(bool, value = + BOOST_STATIC_CONSTANT(bool, value = (::boost::type_traits::ice_and< sizeof(is_class_tester(0)) == sizeof(::boost::type_traits::yes_type), ::boost::type_traits::ice_not< ::boost::is_union::value >::value @@ -59,6 +81,8 @@ struct is_class_impl ); }; +#endif + #else template @@ -90,8 +114,13 @@ struct is_class_impl } // namespace detail +# ifdef __EDG_VERSION__ +BOOST_TT_AUX_BOOL_TRAIT_DEF1( + is_class,T, detail::is_class_impl::type>::value) +# else BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_class,T,::boost::detail::is_class_impl::value) - +# endif + } // namespace boost #include "boost/type_traits/detail/bool_trait_undef.hpp" diff --git a/deal.II/contrib/boost/include/boost/type_traits/is_compound.hpp b/deal.II/contrib/boost/include/boost/type_traits/is_compound.hpp index 88c1419fb5..7d562fc59f 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/is_compound.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/is_compound.hpp @@ -1,11 +1,10 @@ -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// Permission to copy, use, modify, sell and distribute this software is -// granted provided this copyright notice appears in all copies. This software -// is provided "as is" without express or implied warranty, and with no claim -// as to its suitability for any purpose. +// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. +// 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 for most recent version including documentation. +// See http://www.boost.org/libs/type_traits for most recent version including documentation. #ifndef BOOST_TT_IS_COMPOUND_HPP_INCLUDED #define BOOST_TT_IS_COMPOUND_HPP_INCLUDED diff --git a/deal.II/contrib/boost/include/boost/type_traits/is_const.hpp b/deal.II/contrib/boost/include/boost/type_traits/is_const.hpp index 662715d061..9e571aae66 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/is_const.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/is_const.hpp @@ -1,12 +1,22 @@ -// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard -// Hinnant & John Maddock 2000. Permission to copy, use, modify, -// sell and distribute this software is granted provided this -// copyright notice appears in all copies. This software is provided -// "as is" without express or implied warranty, and with no claim as -// to its suitability for any purpose. +// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, +// Howard Hinnant and John Maddock 2000. +// (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 2001 + +// 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 for most recent version including documentation. +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + +// Fixed is_pointer, is_reference, is_const, is_volatile, is_same, +// is_member_pointer based on the Simulated Partial Specialization work +// of Mat Marcus and Jesse Jones. See http://opensource.adobe.com or +// http://groups.yahoo.com/group/boost/message/5441 +// Some workarounds in here use ideas suggested from "Generic: +// Mappings between Types and Values" +// by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html). + #ifndef BOOST_TT_IS_CONST_HPP_INCLUDED #define BOOST_TT_IS_CONST_HPP_INCLUDED @@ -36,7 +46,7 @@ namespace boost { BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_const,T,::boost::detail::cv_traits_imp::is_const) BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_const,T&,false) -#if defined(__BORLANDC__) +#if defined(__BORLANDC__) && (__BORLANDC__ < 0x600) // these are illegal specialisations; cv-qualifies applied to // references have no effect according to [8.3.2p1], // C++ Builder requires them though as it treats cv-qualified @@ -78,7 +88,7 @@ struct is_const_helper BOOST_STATIC_CONSTANT(bool, value = ( sizeof(detail::yes_type) == sizeof(detail::is_const_tester(t)) )); - }; + }; }; template <> @@ -90,7 +100,7 @@ struct is_const_helper BOOST_STATIC_CONSTANT(bool, value = ( sizeof(detail::yes_type) == sizeof(detail::is_const_tester(&t)) )); - }; + }; }; template @@ -99,7 +109,7 @@ struct is_const_impl is_reference::value , is_array::value >::template result_ -{ +{ }; BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_const,void,false) diff --git a/deal.II/contrib/boost/include/boost/type_traits/is_convertible.hpp b/deal.II/contrib/boost/include/boost/type_traits/is_convertible.hpp index 6eb098b0af..5b62877f3f 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/is_convertible.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/is_convertible.hpp @@ -1,17 +1,13 @@ -// Copyright (C) 2000 John Maddock (john_maddock@compuserve.com) -// Copyright (C) 2000 Jeremy Siek (jsiek@lsc.nd.edu) -// Copyright (C) 1999, 2000 Jaakko J„rvi (jaakko.jarvi@cs.utu.fi) +// Copyright 2000 John Maddock (john@johnmaddock.co.uk) +// Copyright 2000 Jeremy Siek (jsiek@lsc.nd.edu) +// Copyright 1999, 2000 Jaakko J„rvi (jaakko.jarvi@cs.utu.fi) // -// Permission to copy and use this software is granted, -// provided this copyright notice appears in all copies. -// Permission to modify the code and to distribute modified code is granted, -// provided this copyright notice appears in all copies, and a notice -// that the code was modified is included with the copyright notice. -// -// This software is provided "as is" without express or implied warranty, -// and with no claim as to its suitability for any purpose. +// 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/type_traits for most recent version including documentation. #ifndef BOOST_TT_IS_CONVERTIBLE_HPP_INCLUDED #define BOOST_TT_IS_CONVERTIBLE_HPP_INCLUDED @@ -21,6 +17,10 @@ #include "boost/type_traits/is_array.hpp" #include "boost/type_traits/add_reference.hpp" #include "boost/type_traits/ice.hpp" +#include "boost/type_traits/is_arithmetic.hpp" +#ifndef BOOST_NO_IS_ABSTRACT +#include "boost/type_traits/is_abstract.hpp" +#endif #if defined(BOOST_MSVC) && (BOOST_MSVC <= 1300) # include "boost/type_traits/is_void.hpp" @@ -99,19 +99,19 @@ struct is_convertible_impl }; static From _m_from; - static bool const value = sizeof( checker::_m_check(_m_from) ) + static bool const value = sizeof( checker::_m_check(_m_from) ) == sizeof(::boost::type_traits::yes_type); #pragma option pop }; -#elif defined(__GNUC__) || defined(__BORLANDC__) +#elif defined(__GNUC__) || defined(__BORLANDC__) && (__BORLANDC__ < 0x600) // special version for gcc compiler + recent Borland versions // note that this does not pass UDT's through (...) struct any_conversion { template any_conversion(const volatile T&); - //template any_conversion(T&); + template any_conversion(T&); }; template struct checker @@ -124,18 +124,22 @@ template struct is_convertible_basic_impl { static From _m_from; - static bool const value = sizeof( detail::checker::_m_check(_m_from, 0) ) + static bool const value = sizeof( detail::checker::_m_check(_m_from, 0) ) == sizeof(::boost::type_traits::yes_type); }; -#elif (defined(BOOST_MSVC) && (BOOST_MSVC > 1310)) \ - || (defined(__EDG_VERSION__) && (__EDG_VERSION__ >= 245) && !defined(__ICL)) +#elif (defined(__EDG_VERSION__) && (__EDG_VERSION__ >= 245) && !defined(__ICL)) \ + || defined(__IBMCPP__) || defined(__HP_aCC) // // This is *almost* an ideal world implementation as it doesn't rely // on undefined behaviour by passing UDT's through (...). // Unfortunately it doesn't quite pass all the tests for most compilers (sigh...) // Enable this for your compiler if is_convertible_test.cpp will compile it... // +// Note we do not enable this for VC7.1, because even though it passes all the +// type_traits tests it is known to cause problems when instantiation occurs +// deep within the instantiation tree :-( +// struct any_conversion { template any_conversion(const volatile T&); @@ -149,17 +153,43 @@ struct is_convertible_basic_impl { static ::boost::type_traits::no_type BOOST_TT_DECL _m_check(any_conversion ...); static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(To, int); - static From _m_from; + static From _m_from; - BOOST_STATIC_CONSTANT(bool, value = + BOOST_STATIC_CONSTANT(bool, value = sizeof( _m_check(_m_from, 0) ) == sizeof(::boost::type_traits::yes_type) ); }; +#elif defined(__DMC__) + +struct any_conversion +{ + template any_conversion(const volatile T&); + // we need this constructor to catch references to functions + // (which can not be cv-qualified): + template any_conversion(T&); +}; + +template +struct is_convertible_basic_impl +{ + // Using '...' doesn't always work on Digital Mars. This version seems to. + template + static ::boost::type_traits::no_type BOOST_TT_DECL _m_check(any_conversion, float, T); + static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(To, int, int); + static From _m_from; + + // Static constants sometime cause the conversion of _m_from to To to be + // called. This doesn't happen with an enum. + enum { value = + sizeof( _m_check(_m_from, 0, 0) ) == sizeof(::boost::type_traits::yes_type) + }; +}; + #else // -// This version seems to work pretty well for a wide spectrum of compilers, +// This version seems to work pretty well for a wide spectrum of compilers, // however it does rely on undefined behaviour by passing UDT's through (...). // template @@ -176,7 +206,21 @@ struct is_convertible_basic_impl #endif // is_convertible_impl -#if !defined(__BORLANDC__) || __BORLANDC__ > 0x551 +#if defined(__DMC__) +// As before, a static constant sometimes causes errors on Digital Mars. +template +struct is_convertible_impl +{ + typedef typename add_reference::type ref_type; + enum { value = + ::boost::type_traits::ice_and< + ::boost::detail::is_convertible_basic_impl::value, + ::boost::type_traits::ice_not< + ::boost::is_array::value + >::value, + >::value }; +}; +#elif !defined(__BORLANDC__) || __BORLANDC__ > 0x551 template struct is_convertible_impl { @@ -192,6 +236,71 @@ struct is_convertible_impl }; #endif +template +struct is_convertible_impl_select +{ + template + struct rebind + { + typedef is_convertible_impl type; + }; +}; + +template <> +struct is_convertible_impl_select +{ + template + struct rebind + { + typedef true_type type; + }; +}; + +template <> +struct is_convertible_impl_select +{ + template + struct rebind + { + typedef false_type type; + }; +}; + +template <> +struct is_convertible_impl_select +{ + template + struct rebind + { + typedef false_type type; + }; +}; + +template +struct is_convertible_impl_dispatch_base +{ +#ifndef __HP_aCC + typedef is_convertible_impl_select< + ::boost::is_arithmetic::value, + ::boost::is_arithmetic::value, +#ifndef BOOST_NO_IS_ABSTRACT + ::boost::is_abstract::value +#else + false +#endif + > selector; +#else + typedef is_convertible_impl_select selector; +#endif + typedef typename selector::template rebind isc_binder; + typedef typename isc_binder::type type; +}; + +template +struct is_convertible_impl_dispatch + : public is_convertible_impl_dispatch_base::type +{}; + // // Now add the full and partial specialisations // for void types, these are common to all the @@ -236,49 +345,7 @@ BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename From,is_convertible,From,v } // namespace detail -BOOST_TT_AUX_BOOL_TRAIT_DEF2(is_convertible,From,To,(::boost::detail::is_convertible_impl::value)) - - -#if defined(__GNUC__) - -// Declare specializations of is_convertible for all of the floating -// types to all of the integral types. This suppresses some nasty -// warnings - -# define TT_AUX_IS_CONVERTIBLE_SPEC(T1,T2) \ - BOOST_TT_AUX_BOOL_TRAIT_SPEC2(is_convertible,T1,T2,true) \ - /**/ - -# define TT_AUX_IS_CONVERTIBLE_SPEC_2(T1,T2) \ - TT_AUX_IS_CONVERTIBLE_SPEC(T1,signed T2) \ - TT_AUX_IS_CONVERTIBLE_SPEC(T1,unsigned T2) \ - /**/ - -# define TT_AUX_IS_CONVERTIBLE_FROM_FLOAT_SPEC(F) \ - TT_AUX_IS_CONVERTIBLE_SPEC(F,char) \ - TT_AUX_IS_CONVERTIBLE_SPEC_2(F,char) \ - TT_AUX_IS_CONVERTIBLE_SPEC_2(F,short) \ - TT_AUX_IS_CONVERTIBLE_SPEC_2(F,int) \ - TT_AUX_IS_CONVERTIBLE_SPEC_2(F,long) \ - TT_AUX_IS_CONVERTIBLE_SPEC_2(F,long long) \ - /**/ - -# define TT_AUX_IS_CONVERTIBLE_FROM_FLOAT_CV_SPEC(F) \ - TT_AUX_IS_CONVERTIBLE_FROM_FLOAT_SPEC(F const) \ - TT_AUX_IS_CONVERTIBLE_FROM_FLOAT_SPEC(F volatile) \ - TT_AUX_IS_CONVERTIBLE_FROM_FLOAT_SPEC(F const volatile) \ - /**/ - -TT_AUX_IS_CONVERTIBLE_FROM_FLOAT_CV_SPEC(float) -TT_AUX_IS_CONVERTIBLE_FROM_FLOAT_CV_SPEC(double) -TT_AUX_IS_CONVERTIBLE_FROM_FLOAT_CV_SPEC(long double) - -# undef TT_AUX_IS_CONVERTIBLE_FROM_FLOAT_CV_SPEC -# undef TT_AUX_IS_CONVERTIBLE_FROM_FLOAT_SPEC -# undef TT_AUX_IS_CONVERTIBLE_SPEC_2 -# undef TT_AUX_IS_CONVERTIBLE_SPEC - -#endif // __GNUC__ +BOOST_TT_AUX_BOOL_TRAIT_DEF2(is_convertible,From,To,(::boost::detail::is_convertible_impl_dispatch::value)) } // namespace boost diff --git a/deal.II/contrib/boost/include/boost/type_traits/is_empty.hpp b/deal.II/contrib/boost/include/boost/type_traits/is_empty.hpp index 1a96022f72..7d2f3645a0 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/is_empty.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/is_empty.hpp @@ -1,11 +1,10 @@ // (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// Permission to copy, use, modify, sell and distribute this software is -// granted provided this copyright notice appears in all copies. This software -// is provided "as is" without express or implied warranty, and with no claim -// as to its suitability for any purpose. +// 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 for most recent version including documentation. +// See http://www.boost.org/libs/type_traits for most recent version including documentation. #ifndef BOOST_TT_IS_EMPTY_HPP_INCLUDED #define BOOST_TT_IS_EMPTY_HPP_INCLUDED @@ -46,7 +45,7 @@ struct empty_helper_t1 : public T struct empty_helper_t2 { int i[256]; }; -#ifndef __BORLANDC__ +#if !BOOST_WORKAROUND(__BORLANDC__, < 0x600) template struct empty_helper @@ -154,9 +153,9 @@ struct empty_helper_chooser }; }; -template +template struct is_empty_impl -{ +{ typedef ::boost::detail::empty_helper_chooser< ::boost::type_traits::ice_and< ::boost::type_traits::ice_not< ::boost::is_reference::value >::value, @@ -174,7 +173,7 @@ struct is_empty_impl typedef typename result::type eh_type; BOOST_STATIC_CONSTANT(bool, value = - (::boost::type_traits::ice_or::value)); + (::boost::type_traits::ice_or::value)); }; #else diff --git a/deal.II/contrib/boost/include/boost/type_traits/is_enum.hpp b/deal.II/contrib/boost/include/boost/type_traits/is_enum.hpp index 939262534b..3b81b7f74a 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/is_enum.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/is_enum.hpp @@ -1,12 +1,12 @@ -// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard -// Hinnant & John Maddock 2000. Permission to copy, use, modify, -// sell and distribute this software is granted provided this -// copyright notice appears in all copies. This software is provided -// "as is" without express or implied warranty, and with no claim as -// to its suitability for any purpose. +// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard +// Hinnant & John Maddock 2000. +// 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 for most recent version including documentation. +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + #ifndef BOOST_TT_IS_ENUM_HPP_INCLUDED #define BOOST_TT_IS_ENUM_HPP_INCLUDED @@ -15,12 +15,17 @@ #include "boost/type_traits/is_arithmetic.hpp" #include "boost/type_traits/is_reference.hpp" #include "boost/type_traits/is_convertible.hpp" +#include "boost/type_traits/is_array.hpp" +#ifdef __GNUC__ +#include +#endif #include "boost/type_traits/config.hpp" - -#ifdef BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION -# include "boost/type_traits/is_class.hpp" +#if defined(BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION) +# include +# include #endif + // should be the last #include #include "boost/type_traits/detail/bool_trait_def.hpp" @@ -29,7 +34,44 @@ namespace boost { #if !(defined(__BORLANDC__) && (__BORLANDC__ <= 0x551)) namespace detail { - + +#if defined(BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION) + +template +struct is_class_or_union +{ + BOOST_STATIC_CONSTANT(bool, value = + (::boost::type_traits::ice_or< + ::boost::is_class::value + , ::boost::is_union::value + >::value)); +}; + +#else + +template +struct is_class_or_union +{ +# if BOOST_WORKAROUND(BOOST_MSVC, == 1200) || BOOST_WORKAROUND(__BORLANDC__, <= 0x570)// we simply can't detect it this way. + BOOST_STATIC_CONSTANT(bool, value = false); +# else + template static ::boost::type_traits::yes_type is_class_or_union_tester(void(U::*)(void)); + +# if BOOST_WORKAROUND(BOOST_MSVC, == 1300) \ + || BOOST_WORKAROUND(__MWERKS__, <= 0x3000) // no SFINAE + static ::boost::type_traits::no_type is_class_or_union_tester(...); + BOOST_STATIC_CONSTANT( + bool, value = sizeof(is_class_or_union_tester(0)) == sizeof(::boost::type_traits::yes_type)); +# else + template + static ::boost::type_traits::no_type is_class_or_union_tester(...); + BOOST_STATIC_CONSTANT( + bool, value = sizeof(is_class_or_union_tester(0)) == sizeof(::boost::type_traits::yes_type)); +# endif +# endif +}; +#endif + struct int_convertible { int_convertible(int); @@ -50,51 +92,67 @@ template <> struct is_enum_helper { template struct type - : ::boost::is_convertible + : ::boost::is_convertible::type,::boost::detail::int_convertible> { }; }; template struct is_enum_impl { - typedef ::boost::add_reference ar_t; - typedef typename ar_t::type r_type; - -#if defined(BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION) + //typedef ::boost::add_reference ar_t; + //typedef typename ar_t::type r_type; + +#if defined(__GNUC__) + +#ifdef BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION + + // We MUST check for is_class_or_union on conforming compilers in + // order to correctly deduce that noncopyable types are not enums + // (dwa 2002/04/15)... + BOOST_STATIC_CONSTANT(bool, selector = + (::boost::type_traits::ice_or< + ::boost::is_arithmetic::value + , ::boost::is_reference::value + , ::boost::is_function::value + , is_class_or_union::value + , is_array::value + >::value)); +#else + // ...however, not checking is_class_or_union on non-conforming + // compilers prevents a dependency recursion. BOOST_STATIC_CONSTANT(bool, selector = (::boost::type_traits::ice_or< ::boost::is_arithmetic::value , ::boost::is_reference::value - // We MUST do this on conforming compilers in order to - // correctly deduce that noncopyable types are not enums (dwa - // 2002/04/15)... - , ::boost::is_class::value + , ::boost::is_function::value + , is_array::value >::value)); -#else +#endif // BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION + +#else // !defined(__GNUC__): + BOOST_STATIC_CONSTANT(bool, selector = (::boost::type_traits::ice_or< ::boost::is_arithmetic::value , ::boost::is_reference::value - // However, not doing this on non-conforming compilers prevents - // a dependency recursion. + , is_class_or_union::value + , is_array::value >::value)); + #endif -#ifdef __BORLANDC__ +#if BOOST_WORKAROUND(__BORLANDC__, < 0x600) typedef ::boost::detail::is_enum_helper< ::boost::detail::is_enum_impl::selector > se_t; #else typedef ::boost::detail::is_enum_helper se_t; #endif - typedef typename se_t::template type helper; + + typedef typename se_t::template type helper; BOOST_STATIC_CONSTANT(bool, value = helper::value); }; -// Specializations suppress some nasty warnings with GCC -BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_enum,float,false) -BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_enum,double,false) -BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_enum,long double,false) // these help on compilers with no partial specialization support: BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_enum,void,false) #ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS @@ -109,7 +167,7 @@ BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_enum,T,::boost::detail::is_enum_impl::value) #else // __BORLANDC__ // -// buggy is_convertible prevents working +// buggy is_convertible prevents working // implementation of is_enum: BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_enum,T,false) diff --git a/deal.II/contrib/boost/include/boost/type_traits/is_float.hpp b/deal.II/contrib/boost/include/boost/type_traits/is_float.hpp index 5450fca532..349608ee28 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/is_float.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/is_float.hpp @@ -1,11 +1,10 @@ -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// Permission to copy, use, modify, sell and distribute this software is -// granted provided this copyright notice appears in all copies. This software -// is provided "as is" without express or implied warranty, and with no claim -// as to its suitability for any purpose. +// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. +// 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 for most recent version including documentation. +// See http://www.boost.org/libs/type_traits for most recent version including documentation. #ifndef BOOST_TYPE_TRAITS_IS_FLOAT_HPP_INCLUDED #define BOOST_TYPE_TRAITS_IS_FLOAT_HPP_INCLUDED diff --git a/deal.II/contrib/boost/include/boost/type_traits/is_function.hpp b/deal.II/contrib/boost/include/boost/type_traits/is_function.hpp index 02c661d477..ecb0b5d665 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/is_function.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/is_function.hpp @@ -1,15 +1,12 @@ -// Copyright (C) 2000 John Maddock (john_maddock@compuserve.com) -// Copyright (C) 2002 Aleksey Gurtovoy (agurtovoy@meta-comm.com) +// Copyright 2000 John Maddock (john@johnmaddock.co.uk) +// Copyright 2002 Aleksey Gurtovoy (agurtovoy@meta-comm.com) // -// Permission to copy and use this software is granted, -// provided this copyright notice appears in all copies. -// Permission to modify the code and to distribute modified code is granted, -// provided this copyright notice appears in all copies, and a notice -// that the code was modified is included with the copyright notice. +// 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). // -// This software is provided "as is" without express or implied warranty, -// and with no claim as to its suitability for any purpose. +// See http://www.boost.org/libs/type_traits for most recent version including documentation. #ifndef BOOST_TT_IS_FUNCTION_HPP_INCLUDED #define BOOST_TT_IS_FUNCTION_HPP_INCLUDED @@ -18,7 +15,7 @@ #include "boost/type_traits/detail/false_result.hpp" #include "boost/config.hpp" -#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_TT_TEST_MS_FUNC_SIGS) # include "boost/type_traits/detail/is_function_ptr_helper.hpp" #else # include "boost/type_traits/detail/is_function_ptr_tester.hpp" @@ -37,7 +34,7 @@ namespace boost { namespace detail { -#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_TT_TEST_MS_FUNC_SIGS) template struct is_function_chooser : ::boost::type_traits::false_result @@ -56,7 +53,7 @@ struct is_function_chooser template struct is_function_impl : is_function_chooser< ::boost::is_reference::value > - ::template result_ + ::BOOST_NESTED_TEMPLATE result_ { }; @@ -72,6 +69,12 @@ struct is_function_impl ); }; +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) +template +struct is_function_impl : public false_type +{}; +#endif + #endif } // namespace detail diff --git a/deal.II/contrib/boost/include/boost/type_traits/is_fundamental.hpp b/deal.II/contrib/boost/include/boost/type_traits/is_fundamental.hpp index 09e4da9c0c..e21e8a6a74 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/is_fundamental.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/is_fundamental.hpp @@ -1,11 +1,10 @@ -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// Permission to copy, use, modify, sell and distribute this software is -// granted provided this copyright notice appears in all copies. This software -// is provided "as is" without express or implied warranty, and with no claim -// as to its suitability for any purpose. +// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. +// 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 for most recent version including documentation. +// See http://www.boost.org/libs/type_traits for most recent version including documentation. #ifndef BOOST_TT_IS_FUNDAMENTAL_HPP_INCLUDED #define BOOST_TT_IS_FUNDAMENTAL_HPP_INCLUDED diff --git a/deal.II/contrib/boost/include/boost/type_traits/is_integral.hpp b/deal.II/contrib/boost/include/boost/type_traits/is_integral.hpp index c3d138159a..62ef83b16e 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/is_integral.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/is_integral.hpp @@ -1,11 +1,10 @@ -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// Permission to copy, use, modify, sell and distribute this software is -// granted provided this copyright notice appears in all copies. This software -// is provided "as is" without express or implied warranty, and with no claim -// as to its suitability for any purpose. +// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. +// 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 for most recent version including documentation. +// See http://www.boost.org/libs/type_traits for most recent version including documentation. #ifndef BOOST_TT_IS_INTEGRAL_HPP_INCLUDED #define BOOST_TT_IS_INTEGRAL_HPP_INCLUDED @@ -36,21 +35,30 @@ BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,bool,true) BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,char,true) #ifndef BOOST_NO_INTRINSIC_WCHAR_T +// If the following line fails to compile and you're using the Intel +// compiler, see http://lists.boost.org/MailArchives/boost-users/msg06567.php, +// and define BOOST_NO_INTRINSIC_WCHAR_T on the command line. BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,wchar_t,true) #endif -#if (defined(BOOST_MSVC) && (BOOST_MSVC == 1200)) || (defined(BOOST_INTEL_CXX_VERSION) && defined(_MSC_VER) && (BOOST_INTEL_CXX_VERSION <= 600)) +#if (defined(BOOST_MSVC) && (BOOST_MSVC == 1200)) \ + || (defined(BOOST_INTEL_CXX_VERSION) && defined(_MSC_VER) && (BOOST_INTEL_CXX_VERSION <= 600)) \ + || (defined(__BORLANDC__) && (__BORLANDC__ == 0x600) && (_MSC_VER == 1200)) BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned __int8,true) BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,__int8,true) BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned __int16,true) BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,__int16,true) BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned __int32,true) BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,__int32,true) +#ifdef __BORLANDC__ +BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned __int64,true) +BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,__int64,true) +#endif #endif # if defined(BOOST_HAS_LONG_LONG) -BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned long long,true) -BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,long long,true) +BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral, ::boost::ulong_long_type,true) +BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral, ::boost::long_long_type,true) #elif defined(BOOST_HAS_MS_INT64) BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned __int64,true) BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,__int64,true) diff --git a/deal.II/contrib/boost/include/boost/type_traits/is_member_function_pointer.hpp b/deal.II/contrib/boost/include/boost/type_traits/is_member_function_pointer.hpp index b2e4218849..1cba5bf76c 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/is_member_function_pointer.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/is_member_function_pointer.hpp @@ -1,27 +1,34 @@ -// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard -// Hinnant & John Maddock 2000. Permission to copy, use, modify, -// sell and distribute this software is granted provided this -// copyright notice appears in all copies. This software is provided -// "as is" without express or implied warranty, and with no claim as -// to its suitability for any purpose. +// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard +// Hinnant & John Maddock 2000. +// 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 for most recent version including documentation. +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + #ifndef BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED #define BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED #include "boost/type_traits/config.hpp" - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(__BORLANDC__) +#include "boost/detail/workaround.hpp" + +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ + && !BOOST_WORKAROUND(__BORLANDC__, < 0x600) && !defined(BOOST_TT_TEST_MS_FUNC_SIGS) + // + // Note: we use the "workaround" version for MSVC because it works for + // __stdcall etc function types, where as the partial specialisation + // version does not do so. + // # include "boost/type_traits/detail/is_mem_fun_pointer_impl.hpp" #else # include "boost/type_traits/is_reference.hpp" # include "boost/type_traits/is_array.hpp" -# include "boost/type_traits/detail/is_mem_fun_pointer_tester.hpp" # include "boost/type_traits/detail/yes_no_type.hpp" # include "boost/type_traits/detail/false_result.hpp" # include "boost/type_traits/detail/ice_or.hpp" +# include "boost/type_traits/detail/is_mem_fun_pointer_tester.hpp" #endif // should be the last #include @@ -29,7 +36,7 @@ namespace boost { -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(__BORLANDC__) +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !BOOST_WORKAROUND(__BORLANDC__, < 0x600) && !defined(BOOST_TT_TEST_MS_FUNC_SIGS) BOOST_TT_AUX_BOOL_TRAIT_DEF1( is_member_function_pointer @@ -54,9 +61,9 @@ struct is_mem_fun_pointer_select { template struct result_ { - static T& make_t; + static T* make_t; typedef result_ self_type; - + BOOST_STATIC_CONSTANT( bool, value = ( 1 == sizeof(::boost::type_traits::is_mem_fun_pointer_tester(self_type::make_t)) @@ -75,12 +82,17 @@ struct is_member_function_pointer_impl { }; +#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION +template +struct is_member_function_pointer_impl : public false_type{}; +#endif + #else // Borland C++ template struct is_member_function_pointer_impl { - static T& m_t; + static T* m_t; BOOST_STATIC_CONSTANT( bool, value = (1 == sizeof(type_traits::is_mem_fun_pointer_tester(m_t))) ); diff --git a/deal.II/contrib/boost/include/boost/type_traits/is_member_pointer.hpp b/deal.II/contrib/boost/include/boost/type_traits/is_member_pointer.hpp index 0f8851b6bd..2a77c6dde2 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/is_member_pointer.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/is_member_pointer.hpp @@ -1,19 +1,30 @@ -// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard -// Hinnant & John Maddock 2000. Permission to copy, use, modify, -// sell and distribute this software is granted provided this -// copyright notice appears in all copies. This software is provided -// "as is" without express or implied warranty, and with no claim as -// to its suitability for any purpose. +// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, +// Howard Hinnant and John Maddock 2000. +// (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 2001 + +// 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 for most recent version including documentation. +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + +// Fixed is_pointer, is_reference, is_const, is_volatile, is_same, +// is_member_pointer based on the Simulated Partial Specialization work +// of Mat Marcus and Jesse Jones. See http://opensource.adobe.com or +// http://groups.yahoo.com/group/boost/message/5441 +// Some workarounds in here use ideas suggested from "Generic: +// Mappings between Types and Values" +// by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html). + #ifndef BOOST_TT_IS_MEMBER_POINTER_HPP_INCLUDED #define BOOST_TT_IS_MEMBER_POINTER_HPP_INCLUDED #include "boost/type_traits/config.hpp" +#include "boost/detail/workaround.hpp" -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(__BORLANDC__) +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !BOOST_WORKAROUND(__BORLANDC__, < 0x600) # include "boost/type_traits/is_member_function_pointer.hpp" #else # include "boost/type_traits/is_reference.hpp" @@ -29,7 +40,7 @@ namespace boost { -#if defined(__BORLANDC__) +#if BOOST_WORKAROUND(__BORLANDC__, < 0x600) BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_member_pointer,T,false) BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,typename U,is_member_pointer,U T::*,true) @@ -42,7 +53,7 @@ BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,typename U,is_member_pointer, namespace detail { template -::boost::type_traits::yes_type BOOST_TT_DECL is_member_pointer_tester(R T::*); +::boost::type_traits::yes_type BOOST_TT_DECL is_member_pointer_tester(R T::*const volatile*); ::boost::type_traits::no_type BOOST_TT_DECL is_member_pointer_tester(...); template @@ -56,9 +67,9 @@ struct is_member_pointer_select { template struct result_ { - static T& make_t(); + static T* make_t(); BOOST_STATIC_CONSTANT( - bool, value = + bool, value = (::boost::type_traits::ice_or< (1 == sizeof(::boost::type_traits::is_mem_fun_pointer_tester(make_t()))), (1 == sizeof(is_member_pointer_tester(make_t()))) diff --git a/deal.II/contrib/boost/include/boost/type_traits/is_object.hpp b/deal.II/contrib/boost/include/boost/type_traits/is_object.hpp index efe737b240..59079a5497 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/is_object.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/is_object.hpp @@ -1,11 +1,10 @@ -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// Permission to copy, use, modify, sell and distribute this software is -// granted provided this copyright notice appears in all copies. This software -// is provided "as is" without express or implied warranty, and with no claim -// as to its suitability for any purpose. +// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. +// 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 for most recent version including documentation. +// See http://www.boost.org/libs/type_traits for most recent version including documentation. #ifndef BOOST_TT_IS_OBJECT_HPP_INCLUDED #define BOOST_TT_IS_OBJECT_HPP_INCLUDED diff --git a/deal.II/contrib/boost/include/boost/type_traits/is_pod.hpp b/deal.II/contrib/boost/include/boost/type_traits/is_pod.hpp index d478e34cac..e674367270 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/is_pod.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/is_pod.hpp @@ -1,11 +1,10 @@ -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// Permission to copy, use, modify, sell and distribute this software is -// granted provided this copyright notice appears in all copies. This software -// is provided "as is" without express or implied warranty, and with no claim -// as to its suitability for any purpose. +// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. +// 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 for most recent version including documentation. +// See http://www.boost.org/libs/type_traits for most recent version including documentation. #ifndef BOOST_TT_IS_POD_HPP_INCLUDED #define BOOST_TT_IS_POD_HPP_INCLUDED @@ -41,11 +40,13 @@ template struct is_pod_impl >::value)); }; +#if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS) template struct is_pod_impl : is_pod_impl { }; +#endif #else @@ -125,7 +126,7 @@ BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,void const volatile,true) } // namespace detail BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_POD,T,::boost::detail::is_pod_impl::value) -BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_pod,T,::boost::is_POD::value) +BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_pod,T,::boost::detail::is_pod_impl::value) } // namespace boost diff --git a/deal.II/contrib/boost/include/boost/type_traits/is_pointer.hpp b/deal.II/contrib/boost/include/boost/type_traits/is_pointer.hpp index 95f32368ff..0f981c06c6 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/is_pointer.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/is_pointer.hpp @@ -1,12 +1,22 @@ -// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard -// Hinnant & John Maddock 2000. Permission to copy, use, modify, -// sell and distribute this software is granted provided this -// copyright notice appears in all copies. This software is provided -// "as is" without express or implied warranty, and with no claim as -// to its suitability for any purpose. +// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, +// Howard Hinnant and John Maddock 2000. +// (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 2001 + +// 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 for most recent version including documentation. +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + +// Fixed is_pointer, is_reference, is_const, is_volatile, is_same, +// is_member_pointer based on the Simulated Partial Specialization work +// of Mat Marcus and Jesse Jones. See http://opensource.adobe.com or +// http://groups.yahoo.com/group/boost/message/5441 +// Some workarounds in here use ideas suggested from "Generic: +// Mappings between Types and Values" +// by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html). + #ifndef BOOST_TT_IS_POINTER_HPP_INCLUDED #define BOOST_TT_IS_POINTER_HPP_INCLUDED @@ -55,7 +65,7 @@ TT_AUX_BOOL_TRAIT_HELPER_PARTIAL_SPEC(is_pointer_helper,T* const volatile,true) template< typename T > struct is_pointer_impl { - BOOST_STATIC_CONSTANT(bool, value = + BOOST_STATIC_CONSTANT(bool, value = (::boost::type_traits::ice_and< ::boost::detail::is_pointer_helper::value , ::boost::type_traits::ice_not< @@ -69,7 +79,7 @@ struct is_pointer_impl BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_pointer,T,::boost::detail::is_pointer_impl::value) -#if defined(__BORLANDC__) && !defined(__COMO__) +#if defined(__BORLANDC__) && !defined(__COMO__) && (__BORLANDC__ < 0x600) BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_pointer,T&,false) BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_pointer,T& const,false) BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_pointer,T& volatile,false) diff --git a/deal.II/contrib/boost/include/boost/type_traits/is_polymorphic.hpp b/deal.II/contrib/boost/include/boost/type_traits/is_polymorphic.hpp index c9bb14db21..afba32b886 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/is_polymorphic.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/is_polymorphic.hpp @@ -1,7 +1,9 @@ -// (C) Copyright John Maddock 2000. Permission to copy, use, modify, sell and -// distribute this software is granted provided this copyright notice appears -// in all copies. This software is provided "as is" without express or implied -// warranty, and with no claim as to its suitability for any purpose. +// (C) Copyright John Maddock 2000. +// 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/type_traits for most recent version including documentation. #ifndef BOOST_TT_IS_POLYMORPHIC_HPP #define BOOST_TT_IS_POLYMORPHIC_HPP @@ -34,9 +36,11 @@ struct is_polymorphic_imp1 { d2(); virtual ~d2()throw(); -# ifndef BOOST_MSVC - // for some reason this messes up VC++ when T has virtual bases: - virtual void foo(); +# if !defined(BOOST_MSVC) && !defined(__ICL) + // for some reason this messes up VC++ when T has virtual bases, + // probably likewise for compilers that use the same ABI: + struct unique{}; + virtual void unique_name_to_boost5487629(unique*); # endif char padding[256]; }; diff --git a/deal.II/contrib/boost/include/boost/type_traits/is_reference.hpp b/deal.II/contrib/boost/include/boost/type_traits/is_reference.hpp index 325d430d34..3655373a4f 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/is_reference.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/is_reference.hpp @@ -1,12 +1,22 @@ -// (C) Copyright David Abrahams Steve Cleary, Beman Dawes, Howard -// Hinnant & John Maddock 2000-2002. Permission to copy, use, -// modify, sell and distribute this software is granted provided this -// copyright notice appears in all copies. This software is provided -// "as is" without express or implied warranty, and with no claim as -// to its suitability for any purpose. +// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, +// Howard Hinnant and John Maddock 2000. +// (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 2001 + +// 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 for most recent version including documentation. +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + +// Fixed is_pointer, is_reference, is_const, is_volatile, is_same, +// is_member_pointer based on the Simulated Partial Specialization work +// of Mat Marcus and Jesse Jones. See http://opensource.adobe.com or +// http://groups.yahoo.com/group/boost/message/5441 +// Some workarounds in here use ideas suggested from "Generic: +// Mappings between Types and Values" +// by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html). + #ifndef BOOST_TT_IS_REFERENCE_HPP_INCLUDED #define BOOST_TT_IS_REFERENCE_HPP_INCLUDED @@ -18,22 +28,17 @@ # include "boost/type_traits/detail/wrap.hpp" #endif -#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && defined(BOOST_MSVC) -# include "boost/type_traits/detail/is_function_type_tester.hpp" -# include "boost/type_traits/detail/false_result.hpp" -#endif - // should be the last #include #include "boost/type_traits/detail/bool_trait_def.hpp" -namespace boost { +namespace boost { #ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_reference,T,false) BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_reference,T&,true) -#if defined(__BORLANDC__) && !defined(__COMO__) +#if defined(__BORLANDC__) && !defined(__COMO__) && (__BORLANDC__ < 0x600) // these are illegal specialisations; cv-qualifies applied to // references have no effect according to [8.3.2p1], // C++ Builder requires them though as it treats cv-qualified diff --git a/deal.II/contrib/boost/include/boost/type_traits/is_same.hpp b/deal.II/contrib/boost/include/boost/type_traits/is_same.hpp index 313312be27..ae5e51e2f6 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/is_same.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/is_same.hpp @@ -1,12 +1,22 @@ -// (C) Copyright Steve Cleary, Beman Dawes, Aleksey Gurtovoy, -// Howard Hinnant & John Maddock 2000. -// Permission to copy, use, modify, sell and distribute this software is -// granted provided this copyright notice appears in all copies. This -// software is provided "as is" without express or implied warranty, and -// with no claim as to its suitability for any purpose. +// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, +// Howard Hinnant and John Maddock 2000. +// (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 2001 + +// 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 for most recent version including documentation. +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + +// Fixed is_pointer, is_reference, is_const, is_volatile, is_same, +// is_member_pointer based on the Simulated Partial Specialization work +// of Mat Marcus and Jesse Jones. See http://opensource.adobe.com or +// http://groups.yahoo.com/group/boost/message/5441 +// Some workarounds in here use ideas suggested from "Generic: +// Mappings between Types and Values" +// by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html). + #ifndef BOOST_TT_IS_SAME_HPP_INCLUDED #define BOOST_TT_IS_SAME_HPP_INCLUDED @@ -26,7 +36,7 @@ namespace boost { BOOST_TT_AUX_BOOL_TRAIT_DEF2(is_same,T,U,false) BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_1(typename T,is_same,T,T,true) -#ifdef __BORLANDC__ +#if BOOST_WORKAROUND(__BORLANDC__, < 0x600) // without this, Borland's compiler gives the wrong answer for // references to arrays: BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_1(typename T,is_same,T&,T&,true) diff --git a/deal.II/contrib/boost/include/boost/type_traits/is_scalar.hpp b/deal.II/contrib/boost/include/boost/type_traits/is_scalar.hpp index 5abd7ee821..24f42a0d6e 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/is_scalar.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/is_scalar.hpp @@ -1,11 +1,10 @@ -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// Permission to copy, use, modify, sell and -// distribute this software is granted provided this copyright notice appears -// in all copies. This software is provided "as is" without express or implied -// warranty, and with no claim as to its suitability for any purpose. +// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. +// 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 for most recent version including documentation. +// See http://www.boost.org/libs/type_traits for most recent version including documentation. #ifndef BOOST_TT_IS_SCALAR_HPP_INCLUDED #define BOOST_TT_IS_SCALAR_HPP_INCLUDED diff --git a/deal.II/contrib/boost/include/boost/type_traits/is_stateless.hpp b/deal.II/contrib/boost/include/boost/type_traits/is_stateless.hpp index d2c764ba45..30f603233b 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/is_stateless.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/is_stateless.hpp @@ -1,11 +1,10 @@ -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// Permission to copy, use, modify, sell and distribute this software is -// granted provided this copyright notice appears in all copies. This software -// is provided "as is" without express or implied warranty, and with no claim -// as to its suitability for any purpose. +// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. +// 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 for most recent version including documentation. +// See http://www.boost.org/libs/type_traits for most recent version including documentation. #ifndef BOOST_TT_IS_STATELESS_HPP_INCLUDED #define BOOST_TT_IS_STATELESS_HPP_INCLUDED diff --git a/deal.II/contrib/boost/include/boost/type_traits/is_union.hpp b/deal.II/contrib/boost/include/boost/type_traits/is_union.hpp index 5a2c3f9711..4a444ec3a4 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/is_union.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/is_union.hpp @@ -1,12 +1,12 @@ -// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard -// Hinnant & John Maddock 2000. Permission to copy, use, modify, -// sell and distribute this software is granted provided this -// copyright notice appears in all copies. This software is provided -// "as is" without express or implied warranty, and with no claim as -// to its suitability for any purpose. +// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard +// Hinnant & John Maddock 2000. +// 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 for most recent version including documentation. +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + #ifndef BOOST_TT_IS_UNION_HPP_INCLUDED #define BOOST_TT_IS_UNION_HPP_INCLUDED @@ -21,11 +21,23 @@ namespace boost { namespace detail { +#ifndef __GNUC__ template struct is_union_impl { typedef typename remove_cv::type cvt; BOOST_STATIC_CONSTANT(bool, value = BOOST_IS_UNION(cvt)); }; +#else +// +// using remove_cv here generates a whole load of needless +// warnings with gcc, since it doesn't do any good with gcc +// in any case (at least at present), just remove it: +// +template struct is_union_impl +{ + BOOST_STATIC_CONSTANT(bool, value = BOOST_IS_UNION(T)); +}; +#endif } // namespace detail BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_union,T,::boost::detail::is_union_impl::value) diff --git a/deal.II/contrib/boost/include/boost/type_traits/is_void.hpp b/deal.II/contrib/boost/include/boost/type_traits/is_void.hpp index 1ef7eb7c0f..00abd0ab0a 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/is_void.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/is_void.hpp @@ -1,11 +1,10 @@ -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// Permission to copy, use, modify, sell and distribute this software is -// granted provided this copyright notice appears in all copies. This software -// is provided "as is" without express or implied warranty, and with no claim -// as to its suitability for any purpose. +// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. +// 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 for most recent version including documentation. +// See http://www.boost.org/libs/type_traits for most recent version including documentation. #ifndef BOOST_TT_IS_VOID_HPP_INCLUDED #define BOOST_TT_IS_VOID_HPP_INCLUDED diff --git a/deal.II/contrib/boost/include/boost/type_traits/is_volatile.hpp b/deal.II/contrib/boost/include/boost/type_traits/is_volatile.hpp index b907a50e60..1d2b1fe015 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/is_volatile.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/is_volatile.hpp @@ -1,12 +1,22 @@ -// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard -// Hinnant & John Maddock 2000. Permission to copy, use, modify, -// sell and distribute this software is granted provided this -// copyright notice appears in all copies. This software is provided -// "as is" without express or implied warranty, and with no claim as -// to its suitability for any purpose. +// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, +// Howard Hinnant and John Maddock 2000. +// (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 2001 + +// 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 for most recent version including documentation. +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + +// Fixed is_pointer, is_reference, is_const, is_volatile, is_same, +// is_member_pointer based on the Simulated Partial Specialization work +// of Mat Marcus and Jesse Jones. See http://opensource.adobe.com or +// http://groups.yahoo.com/group/boost/message/5441 +// Some workarounds in here use ideas suggested from "Generic: +// Mappings between Types and Values" +// by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html). + #ifndef BOOST_TT_IS_VOLATILE_HPP_INCLUDED #define BOOST_TT_IS_VOLATILE_HPP_INCLUDED @@ -33,7 +43,7 @@ namespace boost { BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_volatile,T,::boost::detail::cv_traits_imp::is_volatile) BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_volatile,T&,false) -#if defined(__BORLANDC__) +#if defined(__BORLANDC__) && (__BORLANDC__ < 0x600) // these are illegal specialisations; cv-qualifies applied to // references have no effect according to [8.3.2p1], // C++ Builder requires them though as it treats cv-qualified @@ -68,7 +78,7 @@ struct is_volatile_helper BOOST_STATIC_CONSTANT(bool, value = ( sizeof(detail::yes_type) == sizeof(detail::is_volatile_tester(t)) )); - }; + }; }; template <> @@ -80,7 +90,7 @@ struct is_volatile_helper BOOST_STATIC_CONSTANT(bool, value = ( sizeof(detail::yes_type) == sizeof(detail::is_volatile_tester(&t)) )); - }; + }; }; template @@ -89,7 +99,7 @@ struct is_volatile_impl is_reference::value , is_array::value >::template result_ -{ +{ }; BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_volatile,void,false) diff --git a/deal.II/contrib/boost/include/boost/type_traits/remove_bounds.hpp b/deal.II/contrib/boost/include/boost/type_traits/remove_bounds.hpp index 20199d3af3..32f7dd8c24 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/remove_bounds.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/remove_bounds.hpp @@ -1,11 +1,10 @@ -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// Permission to copy, use, modify, sell and distribute this software is -// granted provided this copyright notice appears in all copies. This software -// is provided "as is" without express or implied warranty, and with no claim -// as to its suitability for any purpose. +// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. +// 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 for most recent version including documentation. +// See http://www.boost.org/libs/type_traits for most recent version including documentation. #ifndef BOOST_TT_REMOVE_BOUNDS_HPP_INCLUDED #define BOOST_TT_REMOVE_BOUNDS_HPP_INCLUDED @@ -20,11 +19,17 @@ namespace boost { BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_bounds,T,T) -#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS) BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_bounds,T[N],T type) BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_bounds,T const[N],T const type) BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_bounds,T volatile[N],T volatile type) BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_bounds,T const volatile[N],T const volatile type) +#if !BOOST_WORKAROUND(__BORLANDC__, < 0x600) && !defined(__IBMCPP__) && !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) +BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_bounds,T[],T) +BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_bounds,T const[],T const) +BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_bounds,T volatile[],T volatile) +BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_bounds,T const volatile[],T const volatile) +#endif #endif } // namespace boost diff --git a/deal.II/contrib/boost/include/boost/type_traits/remove_const.hpp b/deal.II/contrib/boost/include/boost/type_traits/remove_const.hpp index 999220e450..2ec8d6caf0 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/remove_const.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/remove_const.hpp @@ -1,12 +1,12 @@ -// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard -// Hinnant & John Maddock 2000. Permission to copy, use, modify, -// sell and distribute this software is granted provided this -// copyright notice appears in all copies. This software is provided -// "as is" without express or implied warranty, and with no claim as -// to its suitability for any purpose. +// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard +// Hinnant & John Maddock 2000. +// 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 for most recent version including documentation. +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + #ifndef BOOST_TT_REMOVE_CONST_HPP_INCLUDED #define BOOST_TT_REMOVE_CONST_HPP_INCLUDED @@ -55,8 +55,10 @@ struct remove_const_impl BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_const,T,typename detail::remove_const_impl::type) BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_const,T&,T&) +#if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS) BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_const,T const[N],T type[N]) BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_const,T const volatile[N],T volatile type[N]) +#endif #else diff --git a/deal.II/contrib/boost/include/boost/type_traits/remove_cv.hpp b/deal.II/contrib/boost/include/boost/type_traits/remove_cv.hpp index dcb828b308..910ee9597c 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/remove_cv.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/remove_cv.hpp @@ -1,12 +1,12 @@ -// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard -// Hinnant & John Maddock 2000. Permission to copy, use, modify, -// sell and distribute this software is granted provided this -// copyright notice appears in all copies. This software is provided -// "as is" without express or implied warranty, and with no claim as -// to its suitability for any purpose. +// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard +// Hinnant & John Maddock 2000. +// 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 for most recent version including documentation. +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + #ifndef BOOST_TT_REMOVE_CV_HPP_INCLUDED #define BOOST_TT_REMOVE_CV_HPP_INCLUDED @@ -27,9 +27,11 @@ namespace boost { // convert a type T to a non-cv-qualified type - remove_cv BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_cv,T,typename detail::cv_traits_imp::unqualified_type) BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_cv,T&,T&) +#if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS) BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_cv,T const[N],T type[N]) BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_cv,T volatile[N],T type[N]) BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_cv,T const volatile[N],T type[N]) +#endif #else diff --git a/deal.II/contrib/boost/include/boost/type_traits/remove_pointer.hpp b/deal.II/contrib/boost/include/boost/type_traits/remove_pointer.hpp index 37dc820f25..01b27120ad 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/remove_pointer.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/remove_pointer.hpp @@ -1,11 +1,10 @@ -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// Permission to copy, use, modify, sell and distribute this software is -// granted provided this copyright notice appears in all copies. This software -// is provided "as is" without express or implied warranty, and with no claim -// as to its suitability for any purpose. +// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. +// 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 for most recent version including documentation. +// See http://www.boost.org/libs/type_traits for most recent version including documentation. #ifndef BOOST_TT_REMOVE_POINTER_HPP_INCLUDED #define BOOST_TT_REMOVE_POINTER_HPP_INCLUDED diff --git a/deal.II/contrib/boost/include/boost/type_traits/remove_reference.hpp b/deal.II/contrib/boost/include/boost/type_traits/remove_reference.hpp index 78ef6cb56b..9986a03462 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/remove_reference.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/remove_reference.hpp @@ -1,11 +1,10 @@ -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// Permission to copy, use, modify, sell and distribute this software is -// granted provided this copyright notice appears in all copies. This software -// is provided "as is" without express or implied warranty, and with no claim -// as to its suitability for any purpose. +// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. +// 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 for most recent version including documentation. +// See http://www.boost.org/libs/type_traits for most recent version including documentation. #ifndef BOOST_TT_REMOVE_REFERENCE_HPP_INCLUDED #define BOOST_TT_REMOVE_REFERENCE_HPP_INCLUDED @@ -23,7 +22,7 @@ namespace boost { BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_reference,T,T) BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_reference,T&,T) -#if defined(__BORLANDC__) +#if defined(__BORLANDC__) && (__BORLANDC__ < 0x600) // these are illegal specialisations; cv-qualifies applied to // references have no effect according to [8.3.2p1], // C++ Builder requires them though as it treats cv-qualified diff --git a/deal.II/contrib/boost/include/boost/type_traits/remove_volatile.hpp b/deal.II/contrib/boost/include/boost/type_traits/remove_volatile.hpp index ef887735ee..443ce739ed 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/remove_volatile.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/remove_volatile.hpp @@ -1,12 +1,12 @@ -// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard -// Hinnant & John Maddock 2000. Permission to copy, use, modify, -// sell and distribute this software is granted provided this -// copyright notice appears in all copies. This software is provided -// "as is" without express or implied warranty, and with no claim as -// to its suitability for any purpose. +// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard +// Hinnant & John Maddock 2000. +// 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 for most recent version including documentation. +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + #ifndef BOOST_TT_REMOVE_VOLATILE_HPP_INCLUDED #define BOOST_TT_REMOVE_VOLATILE_HPP_INCLUDED @@ -54,8 +54,10 @@ struct remove_volatile_impl BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_volatile,T,typename detail::remove_volatile_impl::type) BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_volatile,T&,T&) +#if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS) BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_volatile,T volatile[N],T type[N]) BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_volatile,T const volatile[N],T const type[N]) +#endif #else diff --git a/deal.II/contrib/boost/include/boost/type_traits/type_with_alignment.hpp b/deal.II/contrib/boost/include/boost/type_traits/type_with_alignment.hpp index 91d3aca782..b6d9a1cf2d 100644 --- a/deal.II/contrib/boost/include/boost/type_traits/type_with_alignment.hpp +++ b/deal.II/contrib/boost/include/boost/type_traits/type_with_alignment.hpp @@ -1,9 +1,9 @@ - -// (C) Copyright John Maddock 2000. -// Permission to copy, use, modify, sell and distribute this software is -// granted provided this copyright notice appears in all copies. This -// software is provided "as is" without express or implied warranty, -// and with no claim as to its suitability for any purpose. +// (C) Copyright John Maddock 2000. +// 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/type_traits for most recent version including documentation. #ifndef BOOST_TT_TYPE_WITH_ALIGNMENT_INCLUDED #define BOOST_TT_TYPE_WITH_ALIGNMENT_INCLUDED @@ -12,6 +12,8 @@ #include "boost/preprocessor/list/for_each_i.hpp" #include "boost/preprocessor/tuple/to_list.hpp" #include "boost/preprocessor/cat.hpp" +#include "boost/preprocessor/list/transform.hpp" +#include "boost/preprocessor/list/append.hpp" #include "boost/type_traits/alignment_of.hpp" #include "boost/type_traits/is_pod.hpp" #include "boost/static_assert.hpp" @@ -38,20 +40,101 @@ typedef void (*function_ptr)(); typedef int (alignment_dummy::*member_ptr); typedef int (alignment_dummy::*member_function_ptr)(); -#define BOOST_TT_ALIGNMENT_TYPES BOOST_PP_TUPLE_TO_LIST( \ +#ifdef BOOST_HAS_LONG_LONG +#define BOOST_TT_ALIGNMENT_BASE_TYPES BOOST_PP_TUPLE_TO_LIST( \ + 12, ( \ + char, short, int, long, ::boost::long_long_type, float, double, long double \ + , void*, function_ptr, member_ptr, member_function_ptr)) +#else +#define BOOST_TT_ALIGNMENT_BASE_TYPES BOOST_PP_TUPLE_TO_LIST( \ 11, ( \ char, short, int, long, float, double, long double \ , void*, function_ptr, member_ptr, member_function_ptr)) +#endif + +#define BOOST_TT_HAS_ONE_T(D,Data,T) boost::detail::has_one_T< T > + +#define BOOST_TT_ALIGNMENT_STRUCT_TYPES \ + BOOST_PP_LIST_TRANSFORM(BOOST_TT_HAS_ONE_T, \ + X, \ + BOOST_TT_ALIGNMENT_BASE_TYPES) + +#define BOOST_TT_ALIGNMENT_TYPES \ + BOOST_PP_LIST_APPEND(BOOST_TT_ALIGNMENT_BASE_TYPES, \ + BOOST_TT_ALIGNMENT_STRUCT_TYPES) + +// +// lower_alignment_helper -- +// +// This template gets instantiated a lot, so use partial +// specialization when available to reduce the compiler burden. +// +#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION +template +struct lower_alignment_helper_impl +{ + template + struct apply + { + typedef char type; + enum { value = true }; + }; +}; + +template <> +struct lower_alignment_helper_impl +{ + template + struct apply + : mpl::if_c<(alignment_of::value == target), TestType, char> + { + enum { value = (alignment_of::value == target) }; + }; +}; + +template +struct lower_alignment_helper + : lower_alignment_helper_impl::template apply +{ +}; +#else +template +struct lower_alignment_helper +{ + typedef char type; + enum { value = true }; +}; + +template +struct lower_alignment_helper +{ + enum { value = (alignment_of::value == target) }; + typedef typename mpl::if_c::type type; +}; +#endif -#define BOOST_TT_CHOOSE_MIN_ALIGNMENT(R,P,I,T) \ - typename mpl::if_c< \ - alignment_of::value <= target, T, char>::type BOOST_PP_CAT(t,I); +#define BOOST_TT_CHOOSE_MIN_ALIGNMENT(R,P,I,T) \ + typename lower_alignment_helper< \ + BOOST_PP_CAT(found,I),target,T \ + >::type BOOST_PP_CAT(t,I); \ + enum { \ + BOOST_PP_CAT(found,BOOST_PP_INC(I)) \ + = lower_alignment_helper::value \ + }; #define BOOST_TT_CHOOSE_T(R,P,I,T) T BOOST_PP_CAT(t,I); - + +template +struct has_one_T +{ + T data; +}; + template union lower_alignment { + enum { found0 = false }; + BOOST_PP_LIST_FOR_EACH_I( BOOST_TT_CHOOSE_MIN_ALIGNMENT , ignored @@ -68,11 +151,14 @@ union max_align ) }; +#undef BOOST_TT_ALIGNMENT_BASE_TYPES +#undef BOOST_TT_HAS_ONE_T +#undef BOOST_TT_ALIGNMENT_STRUCT_TYPES #undef BOOST_TT_ALIGNMENT_TYPES #undef BOOST_TT_CHOOSE_MIN_ALIGNMENT #undef BOOST_TT_CHOOSE_T -template +template struct is_aligned { BOOST_STATIC_CONSTANT(bool, @@ -80,6 +166,7 @@ struct is_aligned ); }; +#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::detail::max_align,true) BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::detail::lower_alignment<1> ,true) BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::detail::lower_alignment<2> ,true) @@ -88,12 +175,21 @@ BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::detail::lower_alignment<8> ,t BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::detail::lower_alignment<10> ,true) BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::detail::lower_alignment<16> ,true) BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::detail::lower_alignment<32> ,true) +#endif } // namespace detail +#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION +template +struct is_pod< ::boost::detail::lower_alignment > +{ + BOOST_STATIC_CONSTANT(std::size_t, value = true); +}; +#endif + // This alignment method originally due to Brian Parker, implemented by David -// Abrahams, and then ported here by Doug Gregor. -template +// Abrahams, and then ported here by Doug Gregor. +template class type_with_alignment { typedef detail::lower_alignment t1; @@ -105,18 +201,38 @@ class type_with_alignment BOOST_STATIC_CONSTANT(std::size_t, found = alignment_of::value); -#ifndef __BORLANDC__ BOOST_STATIC_ASSERT(found >= Align); BOOST_STATIC_ASSERT(found % Align == 0); -#else - BOOST_STATIC_ASSERT(::boost::type_with_alignment::found >= Align); - BOOST_STATIC_ASSERT(::boost::type_with_alignment::found % Align == 0); -#endif public: typedef align_t type; }; +#if defined(__GNUC__) +namespace align { +struct __attribute__((__aligned__(2))) a2 {}; +struct __attribute__((__aligned__(4))) a4 {}; +struct __attribute__((__aligned__(8))) a8 {}; +struct __attribute__((__aligned__(16))) a16 {}; +struct __attribute__((__aligned__(32))) a32 {}; +} + +template<> class type_with_alignment<1> { public: typedef char type; }; +template<> class type_with_alignment<2> { public: typedef align::a2 type; }; +template<> class type_with_alignment<4> { public: typedef align::a4 type; }; +template<> class type_with_alignment<8> { public: typedef align::a8 type; }; +template<> class type_with_alignment<16> { public: typedef align::a16 type; }; +template<> class type_with_alignment<32> { public: typedef align::a32 type; }; + +namespace detail { +BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a2,true) +BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a4,true) +BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a8,true) +BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a16,true) +BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a32,true) +} +#endif + #else // @@ -135,6 +251,9 @@ struct a16{ long double s; }; } namespace detail { + +typedef ::boost::align::a16 max_align; + BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a2,true) BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a4,true) BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a8,true) diff --git a/deal.II/contrib/boost/include/boost/utility/addressof.hpp b/deal.II/contrib/boost/include/boost/utility/addressof.hpp index de8dfe5d59..76294886ad 100644 --- a/deal.II/contrib/boost/include/boost/utility/addressof.hpp +++ b/deal.II/contrib/boost/include/boost/utility/addressof.hpp @@ -1,15 +1,10 @@ // Copyright (C) 2002 Brad King (brad.king@kitware.com) -// Doug Gregor (gregod@cs.rpi.edu) +// Douglas Gregor (gregod@cs.rpi.edu) // Peter Dimov // -// Permission to copy, use, sell and distribute this software is granted -// provided this copyright notice appears in all copies. -// Permission to modify the code and to distribute modified code is granted -// provided this copyright notice appears in all copies, and a notice -// that the code was modified is included with the copyright notice. -// -// This software is provided "as is" without express or implied warranty, -// and with no claim as to its suitability for any purpose. +// 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) // For more information, see http://www.boost.org @@ -18,9 +13,6 @@ # include # include -# if BOOST_WORKAROUND(BOOST_MSVC, == 1300) -# include -# endif namespace boost { @@ -28,7 +20,14 @@ namespace boost { // VC7 strips const from nested classes unless we add indirection here # if BOOST_WORKAROUND(BOOST_MSVC, == 1300) -template typename add_pointer::type + +template struct _addp +{ + typedef T * type; +}; + +template typename _addp::type + # else template T* # endif @@ -38,6 +37,22 @@ addressof(T& v) &const_cast(reinterpret_cast(v))); } +// Borland doesn't like casting an array reference to a char reference +// but these overloads work around the problem. +# if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) +template +T (*addressof(T (&t)[N]))[N] +{ + return reinterpret_cast(&t); +} + +template +const T (*addressof(const T (&t)[N]))[N] +{ + return reinterpret_cast(&t); +} +# endif + } #endif // BOOST_UTILITY_ADDRESSOF_HPP diff --git a/deal.II/contrib/boost/include/boost/version.hpp b/deal.II/contrib/boost/include/boost/version.hpp index 032cc5f215..37519ef328 100644 --- a/deal.II/contrib/boost/include/boost/version.hpp +++ b/deal.II/contrib/boost/include/boost/version.hpp @@ -1,9 +1,8 @@ // Boost version.hpp configuration header file ------------------------------// -// (C) Copyright Boost.org 1999. Permission to copy, use, modify, sell and -// distribute this software is granted provided this copyright notice appears -// in all copies. This software is provided "as is" without express or implied -// warranty, and with no claim as to its suitability for any purpose. +// (C) Copyright John maddock 1999. 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) // See http://www.boost.org/libs/config for documentation @@ -20,7 +19,17 @@ // BOOST_VERSION / 100 % 1000 is the minor version // BOOST_VERSION / 100000 is the major version -#define BOOST_VERSION 103002 +#define BOOST_VERSION 103301 + +// +// BOOST_LIB_VERSION must be defined to be the same as BOOST_VERSION +// but as a *string* in the form "x_y" where x is the major version +// number and y is the minor version number. This is used by +// to select which library version to link to. + +#define BOOST_LIB_VERSION "1_33_1" #endif + +