File indexing completed on 2025-01-18 09:51:42
0001 #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_HPP_INCLUDED
0002 #define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_HPP_INCLUDED
0003
0004
0005
0006 #if defined(_MSC_VER) && (_MSC_VER >= 1020)
0007 # pragma once
0008 #endif
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020 #include <boost/smart_ptr/detail/sp_has_gcc_intrinsics.hpp>
0021 #include <boost/smart_ptr/detail/sp_has_sync_intrinsics.hpp>
0022 #include <boost/config.hpp>
0023
0024 #if defined( BOOST_SP_DISABLE_THREADS )
0025 # include <boost/smart_ptr/detail/sp_counted_base_nt.hpp>
0026
0027 #elif defined( BOOST_SP_USE_STD_ATOMIC )
0028 # include <boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp>
0029
0030 #elif defined( BOOST_SP_USE_SPINLOCK )
0031 # include <boost/smart_ptr/detail/sp_counted_base_spin.hpp>
0032
0033 #elif defined( BOOST_SP_USE_PTHREADS )
0034 # include <boost/smart_ptr/detail/sp_counted_base_pt.hpp>
0035
0036 #elif defined( BOOST_DISABLE_THREADS ) && !defined( BOOST_SP_ENABLE_THREADS ) && !defined( BOOST_DISABLE_WIN32 )
0037 # include <boost/smart_ptr/detail/sp_counted_base_nt.hpp>
0038
0039 #elif defined( BOOST_SP_HAS_GCC_INTRINSICS )
0040 # include <boost/smart_ptr/detail/sp_counted_base_gcc_atomic.hpp>
0041
0042 #elif !defined( BOOST_NO_CXX11_HDR_ATOMIC )
0043 # include <boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp>
0044
0045 #elif defined( __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 )
0046 # include <boost/smart_ptr/detail/sp_counted_base_sync.hpp>
0047
0048 #elif defined( __GNUC__ ) && ( defined( __i386__ ) || defined( __x86_64__ ) ) && !defined(__PATHSCALE__)
0049 # include <boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp>
0050
0051 #elif defined( BOOST_SP_HAS_SYNC_INTRINSICS )
0052 # include <boost/smart_ptr/detail/sp_counted_base_sync.hpp>
0053
0054 #elif defined( __SNC__ )
0055 # include <boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp>
0056
0057 #elif defined(__HP_aCC) && defined(__ia64)
0058 # include <boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp>
0059
0060 #elif defined( __GNUC__ ) && defined( __ia64__ ) && !defined( __INTEL_COMPILER ) && !defined(__PATHSCALE__)
0061 # include <boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp>
0062
0063 #elif defined( __IBMCPP__ ) && defined( __powerpc )
0064 # include <boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp>
0065
0066 #elif defined( __MWERKS__ ) && defined( __POWERPC__ )
0067 # include <boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp>
0068
0069 #elif defined( __GNUC__ ) && ( defined( __powerpc__ ) || defined( __ppc__ ) || defined( __ppc ) ) && !defined(__PATHSCALE__) && !defined( _AIX )
0070 # include <boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp>
0071
0072 #elif defined( __GNUC__ ) && ( defined( __mips__ ) || defined( _mips ) ) && !defined(__PATHSCALE__) && !defined( __mips16 )
0073 # include <boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp>
0074
0075 #elif defined(__GNUC__) && ( defined( __sparcv9 ) || ( defined( __sparcv8 ) && ( __GNUC__ * 100 + __GNUC_MINOR__ >= 402 ) ) )
0076 # include <boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp>
0077
0078 #elif defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ ) || defined(__CYGWIN__)
0079 # include <boost/smart_ptr/detail/sp_counted_base_w32.hpp>
0080
0081 #elif defined( _AIX )
0082 # include <boost/smart_ptr/detail/sp_counted_base_aix.hpp>
0083
0084 #elif !defined( BOOST_HAS_THREADS )
0085 # include <boost/smart_ptr/detail/sp_counted_base_nt.hpp>
0086
0087 #else
0088 # include <boost/smart_ptr/detail/sp_counted_base_spin.hpp>
0089
0090 #endif
0091
0092 #endif