Back to home page

EIC code displayed by LXR

 
 

    


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 // MS compatible compilers support #pragma once
0005 
0006 #if defined(_MSC_VER) && (_MSC_VER >= 1020)
0007 # pragma once
0008 #endif
0009 
0010 //
0011 //  detail/sp_counted_base.hpp
0012 //
0013 //  Copyright 2005-2013 Peter Dimov
0014 //
0015 // Distributed under the Boost Software License, Version 1.0. (See
0016 // accompanying file LICENSE_1_0.txt or copy at
0017 // http://www.boost.org/LICENSE_1_0.txt)
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  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_HPP_INCLUDED