mirror of
https://github.com/boostorg/detail.git
synced 2025-06-29 05:51:07 +02:00
Compare commits
10 Commits
boost-1.49
...
svn-branch
Author | SHA1 | Date | |
---|---|---|---|
da75fc4197 | |||
e0e8ccb712 | |||
17612676b8 | |||
948271c0ae | |||
609cf3c49f | |||
735804d636 | |||
4c711ba972 | |||
0f51c7701d | |||
7b712685ce | |||
2423aff085 |
@ -16,8 +16,22 @@
|
|||||||
#include <boost/config.hpp>
|
#include <boost/config.hpp>
|
||||||
#include <boost/detail/workaround.hpp>
|
#include <boost/detail/workaround.hpp>
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// //
|
||||||
|
// Define BOOST_DETAIL_NO_CONTAINER_FWD if you don't want this header to //
|
||||||
|
// forward declare standard containers. //
|
||||||
|
// //
|
||||||
|
// BOOST_DETAIL_CONTAINER_FWD to make it foward declare containers even if it //
|
||||||
|
// normally doesn't. //
|
||||||
|
// //
|
||||||
|
// BOOST_DETAIL_NO_CONTAINER_FWD overrides BOOST_DETAIL_CONTAINER_FWD. //
|
||||||
|
// //
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#if !defined(BOOST_DETAIL_NO_CONTAINER_FWD)
|
#if !defined(BOOST_DETAIL_NO_CONTAINER_FWD)
|
||||||
# if defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
|
# if defined(BOOST_DETAIL_CONTAINER_FWD)
|
||||||
|
// Force forward declarations.
|
||||||
|
# elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
|
||||||
// STLport
|
// STLport
|
||||||
# define BOOST_DETAIL_NO_CONTAINER_FWD
|
# define BOOST_DETAIL_NO_CONTAINER_FWD
|
||||||
# elif defined(__LIBCOMO__)
|
# elif defined(__LIBCOMO__)
|
||||||
@ -31,13 +45,23 @@
|
|||||||
# define BOOST_DETAIL_NO_CONTAINER_FWD
|
# define BOOST_DETAIL_NO_CONTAINER_FWD
|
||||||
# elif defined(__GLIBCPP__) || defined(__GLIBCXX__)
|
# elif defined(__GLIBCPP__) || defined(__GLIBCXX__)
|
||||||
// GNU libstdc++ 3
|
// GNU libstdc++ 3
|
||||||
# if defined(_GLIBCXX_DEBUG) || defined(_GLIBCXX_PARALLEL)
|
//
|
||||||
|
// Disable forwarding for all recent versions, as the library has a
|
||||||
|
// versioned namespace mode, and I don't know how to detect it.
|
||||||
|
# if __GLIBCXX__ >= 20070513 \
|
||||||
|
|| defined(_GLIBCXX_DEBUG) \
|
||||||
|
|| defined(_GLIBCXX_PARALLEL) \
|
||||||
|
|| defined(_GLIBCXX_PROFILE)
|
||||||
# define BOOST_DETAIL_NO_CONTAINER_FWD
|
# define BOOST_DETAIL_NO_CONTAINER_FWD
|
||||||
|
# else
|
||||||
|
# if defined(__GLIBCXX__) && __GLIBCXX__ >= 20040530
|
||||||
|
# define BOOST_CONTAINER_FWD_COMPLEX_STRUCT
|
||||||
|
# endif
|
||||||
# endif
|
# endif
|
||||||
# elif defined(__STL_CONFIG_H)
|
# elif defined(__STL_CONFIG_H)
|
||||||
// generic SGI STL
|
// generic SGI STL
|
||||||
//
|
//
|
||||||
// Forward declaration seems to be okay, but it has a copule of odd
|
// Forward declaration seems to be okay, but it has a couple of odd
|
||||||
// implementations.
|
// implementations.
|
||||||
# define BOOST_CONTAINER_FWD_BAD_BITSET
|
# define BOOST_CONTAINER_FWD_BAD_BITSET
|
||||||
# if !defined(__STL_NON_TYPE_TMPL_PARAM_BUG)
|
# if !defined(__STL_NON_TYPE_TMPL_PARAM_BUG)
|
||||||
@ -47,26 +71,18 @@
|
|||||||
// MSL standard lib:
|
// MSL standard lib:
|
||||||
# define BOOST_DETAIL_NO_CONTAINER_FWD
|
# define BOOST_DETAIL_NO_CONTAINER_FWD
|
||||||
# elif defined(__IBMCPP__)
|
# elif defined(__IBMCPP__)
|
||||||
// take the default VACPP std lib
|
// The default VACPP std lib, forward declaration seems to be fine.
|
||||||
# define BOOST_DETAIL_NO_CONTAINER_FWD
|
|
||||||
# elif defined(MSIPL_COMPILE_H)
|
# elif defined(MSIPL_COMPILE_H)
|
||||||
// Modena C++ standard library
|
// Modena C++ standard library
|
||||||
# define BOOST_DETAIL_NO_CONTAINER_FWD
|
# define BOOST_DETAIL_NO_CONTAINER_FWD
|
||||||
# elif (defined(_YVALS) && !defined(__IBMCPP__)) || defined(_CPPLIB_VER)
|
# elif (defined(_YVALS) && !defined(__IBMCPP__)) || defined(_CPPLIB_VER)
|
||||||
// Dinkumware Library (this has to appear after any possible replacement
|
// Dinkumware Library (this has to appear after any possible replacement
|
||||||
// libraries)
|
// libraries)
|
||||||
//
|
|
||||||
// Works fine.
|
|
||||||
# else
|
# else
|
||||||
# define BOOST_DETAIL_NO_CONTAINER_FWD
|
# define BOOST_DETAIL_NO_CONTAINER_FWD
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// BOOST_DETAIL_TEST_* macros are for testing only
|
|
||||||
// and shouldn't be relied upon. But you can use
|
|
||||||
// BOOST_DETAIL_NO_CONTAINER_FWD to prevent forward
|
|
||||||
// declaration of containers.
|
|
||||||
|
|
||||||
#if !defined(BOOST_DETAIL_TEST_CONFIG_ONLY)
|
#if !defined(BOOST_DETAIL_TEST_CONFIG_ONLY)
|
||||||
|
|
||||||
#if defined(BOOST_DETAIL_NO_CONTAINER_FWD) && \
|
#if defined(BOOST_DETAIL_NO_CONTAINER_FWD) && \
|
||||||
@ -104,16 +120,17 @@ namespace std
|
|||||||
template <class charT, class traits, class Allocator> class basic_string;
|
template <class charT, class traits, class Allocator> class basic_string;
|
||||||
|
|
||||||
#if BOOST_WORKAROUND(__GNUC__, < 3) && !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)
|
#if BOOST_WORKAROUND(__GNUC__, < 3) && !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)
|
||||||
|
|
||||||
template <class charT> struct string_char_traits;
|
template <class charT> struct string_char_traits;
|
||||||
#else
|
#else
|
||||||
template <class charT> struct char_traits;
|
template <class charT> struct char_traits;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if BOOST_CLANG
|
#if defined(BOOST_CONTAINER_FWD_COMPLEX_STRUCT)
|
||||||
template <class T> struct complex;
|
template <class T> struct complex;
|
||||||
#else
|
#else
|
||||||
template <class T> class complex;
|
template <class T> class complex;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !defined(BOOST_CONTAINER_FWD_BAD_DEQUE)
|
#if !defined(BOOST_CONTAINER_FWD_BAD_DEQUE)
|
||||||
template <class T, class Allocator> class deque;
|
template <class T, class Allocator> class deque;
|
||||||
|
@ -16,9 +16,10 @@
|
|||||||
|
|
||||||
/* If we're using clang + glibc, we have to get hacky.
|
/* If we're using clang + glibc, we have to get hacky.
|
||||||
* See http://llvm.org/bugs/show_bug.cgi?id=6907 */
|
* See http://llvm.org/bugs/show_bug.cgi?id=6907 */
|
||||||
#if defined(__clang__) && \
|
#if defined(__clang__) && (__clang_major__ < 3) && \
|
||||||
defined(__GNU_LIBRARY__) && /* up to version 5 */ \
|
defined(__GNU_LIBRARY__) && /* up to version 5 */ \
|
||||||
defined(__GLIBC__) /* version 6 + */
|
defined(__GLIBC__) && /* version 6 + */ \
|
||||||
|
!defined(_FENV_H)
|
||||||
#define _FENV_H
|
#define _FENV_H
|
||||||
|
|
||||||
#include <features.h>
|
#include <features.h>
|
||||||
|
0
include/boost/detail/indirect_traits.hpp
Executable file → Normal file
0
include/boost/detail/indirect_traits.hpp
Executable file → Normal file
@ -54,7 +54,11 @@ extern "C" long __cdecl InterlockedExchangeAdd( long*, long );
|
|||||||
|
|
||||||
#elif defined( BOOST_MSVC ) || defined( BOOST_INTEL_WIN )
|
#elif defined( BOOST_MSVC ) || defined( BOOST_INTEL_WIN )
|
||||||
|
|
||||||
#if defined( __CLRCALL_PURE_OR_CDECL )
|
#if defined( BOOST_MSVC ) && BOOST_MSVC >= 1600
|
||||||
|
|
||||||
|
#include <intrin.h>
|
||||||
|
|
||||||
|
#elif defined( __CLRCALL_PURE_OR_CDECL )
|
||||||
|
|
||||||
extern "C" long __CLRCALL_PURE_OR_CDECL _InterlockedIncrement( long volatile * );
|
extern "C" long __CLRCALL_PURE_OR_CDECL _InterlockedIncrement( long volatile * );
|
||||||
extern "C" long __CLRCALL_PURE_OR_CDECL _InterlockedDecrement( long volatile * );
|
extern "C" long __CLRCALL_PURE_OR_CDECL _InterlockedDecrement( long volatile * );
|
||||||
@ -119,15 +123,15 @@ namespace boost
|
|||||||
namespace detail
|
namespace detail
|
||||||
{
|
{
|
||||||
|
|
||||||
extern "C"BOOST_INTERLOCKED_IMPORT long __stdcall InterlockedIncrement( long volatile * );
|
extern "C" BOOST_INTERLOCKED_IMPORT long __stdcall InterlockedIncrement( long volatile * );
|
||||||
extern "C"BOOST_INTERLOCKED_IMPORT long __stdcall InterlockedDecrement( long volatile * );
|
extern "C" BOOST_INTERLOCKED_IMPORT long __stdcall InterlockedDecrement( long volatile * );
|
||||||
extern "C"BOOST_INTERLOCKED_IMPORT long __stdcall InterlockedCompareExchange( long volatile *, long, long );
|
extern "C" BOOST_INTERLOCKED_IMPORT long __stdcall InterlockedCompareExchange( long volatile *, long, long );
|
||||||
extern "C"BOOST_INTERLOCKED_IMPORT long __stdcall InterlockedExchange( long volatile *, long );
|
extern "C" BOOST_INTERLOCKED_IMPORT long __stdcall InterlockedExchange( long volatile *, long );
|
||||||
extern "C"BOOST_INTERLOCKED_IMPORT long __stdcall InterlockedExchangeAdd( long volatile *, long );
|
extern "C" BOOST_INTERLOCKED_IMPORT long __stdcall InterlockedExchangeAdd( long volatile *, long );
|
||||||
|
|
||||||
# if defined(_M_IA64) || defined(_M_AMD64)
|
# if defined(_M_IA64) || defined(_M_AMD64)
|
||||||
extern "C"BOOST_INTERLOCKED_IMPORT void* __stdcall InterlockedCompareExchangePointer( void* volatile *, void*, void* );
|
extern "C" BOOST_INTERLOCKED_IMPORT void* __stdcall InterlockedCompareExchangePointer( void* volatile *, void*, void* );
|
||||||
extern "C"BOOST_INTERLOCKED_IMPORT void* __stdcall InterlockedExchangePointer( void* volatile *, void* );
|
extern "C" BOOST_INTERLOCKED_IMPORT void* __stdcall InterlockedExchangePointer( void* volatile *, void* );
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
} // namespace detail
|
} // namespace detail
|
||||||
|
0
include/boost/detail/is_function_ref_tester.hpp
Executable file → Normal file
0
include/boost/detail/is_function_ref_tester.hpp
Executable file → Normal file
0
include/boost/detail/is_xxx.hpp
Executable file → Normal file
0
include/boost/detail/is_xxx.hpp
Executable file → Normal file
0
include/boost/indirect_reference.hpp
Executable file → Normal file
0
include/boost/indirect_reference.hpp
Executable file → Normal file
@ -11,6 +11,7 @@ project detail/test/container_fwd
|
|||||||
<toolset>intel:<warnings>on
|
<toolset>intel:<warnings>on
|
||||||
<toolset>gcc:<cxxflags>"-pedantic -Wstrict-aliasing -fstrict-aliasing -Wextra -Wsign-promo -Wunused-parameter -Wconversion"
|
<toolset>gcc:<cxxflags>"-pedantic -Wstrict-aliasing -fstrict-aliasing -Wextra -Wsign-promo -Wunused-parameter -Wconversion"
|
||||||
<toolset>darwin:<cxxflags>"-pedantic -Wstrict-aliasing -fstrict-aliasing -Wextra -Wsign-promo -Wunused-parameter -Wconversion"
|
<toolset>darwin:<cxxflags>"-pedantic -Wstrict-aliasing -fstrict-aliasing -Wextra -Wsign-promo -Wunused-parameter -Wconversion"
|
||||||
|
<toolset>clang:<cxxflags>"-pedantic -Wextra -Wmismatched-tags"
|
||||||
<warnings-as-errors>on
|
<warnings-as-errors>on
|
||||||
;
|
;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user