File indexing completed on 2025-09-17 08:50:35
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/smart_ptr/detail/deprecated_macros.hpp>
0023 #include <boost/config.hpp>
0024
0025 #if defined( BOOST_SP_DISABLE_THREADS )
0026 # include <boost/smart_ptr/detail/sp_counted_base_nt.hpp>
0027
0028 #elif defined( BOOST_SP_USE_STD_ATOMIC )
0029 # include <boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp>
0030
0031 #elif defined( BOOST_SP_USE_SPINLOCK )
0032 # include <boost/smart_ptr/detail/sp_counted_base_spin.hpp>
0033
0034 #elif defined( BOOST_SP_USE_PTHREADS )
0035 # include <boost/smart_ptr/detail/sp_counted_base_pt.hpp>
0036
0037 #elif defined( BOOST_DISABLE_THREADS ) && !defined( BOOST_SP_ENABLE_THREADS ) && !defined( BOOST_DISABLE_WIN32 )
0038 # include <boost/smart_ptr/detail/sp_counted_base_nt.hpp>
0039
0040 #elif defined( BOOST_SP_HAS_GCC_INTRINSICS )
0041 # include <boost/smart_ptr/detail/sp_counted_base_gcc_atomic.hpp>
0042
0043 #elif !defined( BOOST_NO_CXX11_HDR_ATOMIC )
0044 # include <boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp>
0045
0046 #elif defined( __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 )
0047 # include <boost/smart_ptr/detail/sp_counted_base_sync.hpp>
0048
0049 #elif defined( __GNUC__ ) && ( defined( __i386__ ) || defined( __x86_64__ ) ) && !defined(__PATHSCALE__)
0050 # include <boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp>
0051
0052 #elif defined( BOOST_SP_HAS_SYNC_INTRINSICS )
0053 # include <boost/smart_ptr/detail/sp_counted_base_sync.hpp>
0054
0055 #elif defined( __SNC__ )
0056 # include <boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp>
0057
0058 #elif defined(__HP_aCC) && defined(__ia64)
0059 # include <boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp>
0060
0061 #elif defined( __GNUC__ ) && defined( __ia64__ ) && !defined( __INTEL_COMPILER ) && !defined(__PATHSCALE__)
0062 # include <boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp>
0063
0064 #elif defined( __IBMCPP__ ) && defined( __powerpc )
0065 # include <boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp>
0066
0067 #elif defined( __MWERKS__ ) && defined( __POWERPC__ )
0068 # include <boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp>
0069
0070 #elif defined( __GNUC__ ) && ( defined( __powerpc__ ) || defined( __ppc__ ) || defined( __ppc ) ) && !defined(__PATHSCALE__) && !defined( _AIX )
0071 # include <boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp>
0072
0073 #elif defined( __GNUC__ ) && ( defined( __mips__ ) || defined( _mips ) ) && !defined(__PATHSCALE__) && !defined( __mips16 )
0074 # include <boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp>
0075
0076 #elif defined(__GNUC__) && ( defined( __sparcv9 ) || ( defined( __sparcv8 ) && ( __GNUC__ * 100 + __GNUC_MINOR__ >= 402 ) ) )
0077 # include <boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp>
0078
0079 #elif defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ ) || defined(__CYGWIN__)
0080 # include <boost/smart_ptr/detail/sp_counted_base_w32.hpp>
0081
0082 #elif defined( _AIX )
0083 # include <boost/smart_ptr/detail/sp_counted_base_aix.hpp>
0084
0085 #elif !defined( BOOST_HAS_THREADS )
0086 # include <boost/smart_ptr/detail/sp_counted_base_nt.hpp>
0087
0088 #else
0089 # include <boost/smart_ptr/detail/sp_counted_base_spin.hpp>
0090
0091 #endif
0092
0093 #endif