Back to home page

EIC code displayed by LXR

 
 

    


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 // 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/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  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_HPP_INCLUDED