mirror of
				https://github.com/boostorg/smart_ptr.git
				synced 2025-11-04 01:31:51 +01:00 
			
		
		
		
	Compare commits
	
		
			22 Commits
		
	
	
		
			boost-1.82
			...
			boost-1.86
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					1650077eee | ||
| 
						 | 
					635dfe46ee | ||
| 
						 | 
					c4ae5e0c42 | ||
| 
						 | 
					85b0ab073c | ||
| 
						 | 
					3ef8cfd02f | ||
| 
						 | 
					cd2aac8442 | ||
| 
						 | 
					3ca07d82a7 | ||
| 
						 | 
					f8303629f1 | ||
| 
						 | 
					ef0e40bcda | ||
| 
						 | 
					4af91d46f1 | ||
| 
						 | 
					42dfdc9e51 | ||
| 
						 | 
					763c7f56cd | ||
| 
						 | 
					029f089a4a | ||
| 
						 | 
					66d11714bd | ||
| 
						 | 
					ac0381f0b8 | ||
| 
						 | 
					13be03abf8 | ||
| 
						 | 
					5e7596ef06 | ||
| 
						 | 
					ef1651449f | ||
| 
						 | 
					b34786c4d4 | ||
| 
						 | 
					aacfb25c82 | ||
| 
						 | 
					c7349834be | ||
| 
						 | 
					414b0a65d9 | 
@@ -194,17 +194,38 @@ local windows_pipeline(name, image, environment, arch = "amd64") =
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
    linux_pipeline(
 | 
			
		||||
        "Linux 22.04 GCC 12 32 ASAN",
 | 
			
		||||
        "Linux 22.04 GCC 12 32/64",
 | 
			
		||||
        "cppalliance/droneubuntu2204:1",
 | 
			
		||||
        { TOOLSET: 'gcc', COMPILER: 'g++-12', CXXSTD: '03,11,14,17,20,2b', ADDRMD: '32' } + asan,
 | 
			
		||||
        { TOOLSET: 'gcc', COMPILER: 'g++-12', CXXSTD: '03,11,14,17,20,2b', ADDRMD: '32,64' },
 | 
			
		||||
        "g++-12-multilib",
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
    linux_pipeline(
 | 
			
		||||
        "Linux 22.04 GCC 12 64 ASAN",
 | 
			
		||||
        "cppalliance/droneubuntu2204:1",
 | 
			
		||||
        { TOOLSET: 'gcc', COMPILER: 'g++-12', CXXSTD: '03,11,14,17,20,2b', ADDRMD: '64' } + asan,
 | 
			
		||||
        "g++-12-multilib",
 | 
			
		||||
        "Linux 23.04 GCC 13 32 ASAN",
 | 
			
		||||
        "cppalliance/droneubuntu2304:1",
 | 
			
		||||
        { TOOLSET: 'gcc', COMPILER: 'g++-13', CXXSTD: '03,11,14,17,20,2b', ADDRMD: '32' } + asan,
 | 
			
		||||
        "g++-13-multilib",
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
    linux_pipeline(
 | 
			
		||||
        "Linux 23.04 GCC 13 64 ASAN",
 | 
			
		||||
        "cppalliance/droneubuntu2304:1",
 | 
			
		||||
        { TOOLSET: 'gcc', COMPILER: 'g++-13', CXXSTD: '03,11,14,17,20,2b', ADDRMD: '64' } + asan,
 | 
			
		||||
        "g++-13-multilib",
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
    linux_pipeline(
 | 
			
		||||
        "Linux 23.04 GCC 13 32 UBSAN",
 | 
			
		||||
        "cppalliance/droneubuntu2304:1",
 | 
			
		||||
        { TOOLSET: 'gcc', COMPILER: 'g++-13', CXXSTD: '03,11,14,17,20,2b', ADDRMD: '32' } + ubsan,
 | 
			
		||||
        "g++-13-multilib",
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
    linux_pipeline(
 | 
			
		||||
        "Linux 23.04 GCC 13 64 UBSAN",
 | 
			
		||||
        "cppalliance/droneubuntu2304:1",
 | 
			
		||||
        { TOOLSET: 'gcc', COMPILER: 'g++-13', CXXSTD: '03,11,14,17,20,2b', ADDRMD: '64' } + ubsan,
 | 
			
		||||
        "g++-13-multilib",
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
    linux_pipeline(
 | 
			
		||||
@@ -320,17 +341,31 @@ local windows_pipeline(name, image, environment, arch = "amd64") =
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
    linux_pipeline(
 | 
			
		||||
        "Linux 22.04 Clang 15 UBSAN",
 | 
			
		||||
        "Linux 22.04 Clang 15",
 | 
			
		||||
        "cppalliance/droneubuntu2204:1",
 | 
			
		||||
        { TOOLSET: 'clang', COMPILER: 'clang++-15', CXXSTD: '03,11,14,17,20,2b' } + ubsan,
 | 
			
		||||
        { TOOLSET: 'clang', COMPILER: 'clang++-15', CXXSTD: '03,11,14,17,20,2b' },
 | 
			
		||||
        "clang-15",
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
    linux_pipeline(
 | 
			
		||||
        "Linux 22.04 Clang 15 ASAN",
 | 
			
		||||
        "cppalliance/droneubuntu2204:1",
 | 
			
		||||
        { TOOLSET: 'clang', COMPILER: 'clang++-15', CXXSTD: '03,11,14,17,20,2b' } + asan,
 | 
			
		||||
        "clang-15",
 | 
			
		||||
        "Linux 23.04 Clang 16",
 | 
			
		||||
        "cppalliance/droneubuntu2304:1",
 | 
			
		||||
        { TOOLSET: 'clang', COMPILER: 'clang++-16', CXXSTD: '03,11,14,17,20,2b' },
 | 
			
		||||
        "clang-16",
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
    linux_pipeline(
 | 
			
		||||
        "Linux 23.10 Clang 17 UBSAN",
 | 
			
		||||
        "cppalliance/droneubuntu2310:1",
 | 
			
		||||
        { TOOLSET: 'clang', COMPILER: 'clang++-17', CXXSTD: '03,11,14,17,20,2b' } + ubsan,
 | 
			
		||||
        "clang-17",
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
    linux_pipeline(
 | 
			
		||||
        "Linux 23.10 Clang 17 ASAN",
 | 
			
		||||
        "cppalliance/droneubuntu2310:1",
 | 
			
		||||
        { TOOLSET: 'clang', COMPILER: 'clang++-17', CXXSTD: '03,11,14,17,20,2b' } + asan,
 | 
			
		||||
        "clang-17",
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
    macos_pipeline(
 | 
			
		||||
@@ -358,7 +393,7 @@ local windows_pipeline(name, image, environment, arch = "amd64") =
 | 
			
		||||
    windows_pipeline(
 | 
			
		||||
        "Windows VS2015 msvc-14.0",
 | 
			
		||||
        "cppalliance/dronevs2015",
 | 
			
		||||
        { TOOLSET: 'msvc-14.0', CXXSTD: '14,latest' },
 | 
			
		||||
        { TOOLSET: 'msvc-14.0', CXXSTD: '14,latest', B2_DONT_EMBED_MANIFEST: '1' },
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
    windows_pipeline(
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										85
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										85
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							@@ -58,7 +58,7 @@ jobs:
 | 
			
		||||
            address-model: 32,64
 | 
			
		||||
          - toolset: gcc-11
 | 
			
		||||
            cxxstd: "03,11,14,17,20"
 | 
			
		||||
            os: ubuntu-20.04
 | 
			
		||||
            os: ubuntu-22.04
 | 
			
		||||
            install: g++-11-multilib
 | 
			
		||||
            address-model: 32,64
 | 
			
		||||
          - toolset: gcc-12
 | 
			
		||||
@@ -66,6 +66,18 @@ jobs:
 | 
			
		||||
            os: ubuntu-22.04
 | 
			
		||||
            install: g++-12-multilib
 | 
			
		||||
            address-model: 32,64
 | 
			
		||||
          - toolset: gcc-13
 | 
			
		||||
            cxxstd: "03,11,14,17,20,2b"
 | 
			
		||||
            os: ubuntu-latest
 | 
			
		||||
            container: ubuntu:23.04
 | 
			
		||||
            install: g++-13-multilib
 | 
			
		||||
            address-model: 32,64
 | 
			
		||||
          - toolset: gcc-14
 | 
			
		||||
            cxxstd: "03,11,14,17,20,2b"
 | 
			
		||||
            os: ubuntu-latest
 | 
			
		||||
            container: ubuntu:24.04
 | 
			
		||||
            install: g++-14-multilib
 | 
			
		||||
            address-model: 32,64
 | 
			
		||||
          - toolset: clang
 | 
			
		||||
            compiler: clang++-3.9
 | 
			
		||||
            cxxstd: "03,11,14"
 | 
			
		||||
@@ -119,24 +131,48 @@ jobs:
 | 
			
		||||
          - toolset: clang
 | 
			
		||||
            compiler: clang++-13
 | 
			
		||||
            cxxstd: "03,11,14,17,20,2b"
 | 
			
		||||
            os: ubuntu-22.04
 | 
			
		||||
            container: ubuntu:22.04
 | 
			
		||||
            os: ubuntu-latest
 | 
			
		||||
            install: clang-13
 | 
			
		||||
          - toolset: clang
 | 
			
		||||
            compiler: clang++-14
 | 
			
		||||
            cxxstd: "03,11,14,17,20,2b"
 | 
			
		||||
            os: ubuntu-22.04
 | 
			
		||||
            container: ubuntu:22.04
 | 
			
		||||
            os: ubuntu-latest
 | 
			
		||||
            install: clang-14
 | 
			
		||||
          - toolset: clang
 | 
			
		||||
            compiler: clang++-15
 | 
			
		||||
            cxxstd: "03,11,14,17,20,2b"
 | 
			
		||||
            os: ubuntu-22.04
 | 
			
		||||
            container: ubuntu:22.04
 | 
			
		||||
            os: ubuntu-latest
 | 
			
		||||
            install: clang-15
 | 
			
		||||
          - toolset: clang
 | 
			
		||||
            cxxstd: "03,11,14,17,2a"
 | 
			
		||||
            os: macos-11
 | 
			
		||||
            compiler: clang++-16
 | 
			
		||||
            cxxstd: "03,11,14,17,20,2b"
 | 
			
		||||
            container: ubuntu:23.04
 | 
			
		||||
            os: ubuntu-latest
 | 
			
		||||
            install: clang-16
 | 
			
		||||
          - toolset: clang
 | 
			
		||||
            compiler: clang++-17
 | 
			
		||||
            cxxstd: "03,11,14,17,20,2b"
 | 
			
		||||
            container: ubuntu:23.10
 | 
			
		||||
            os: ubuntu-latest
 | 
			
		||||
            install: clang-17
 | 
			
		||||
          - toolset: clang
 | 
			
		||||
            compiler: clang++-18
 | 
			
		||||
            cxxstd: "03,11,14,17,20,2b"
 | 
			
		||||
            container: ubuntu:24.04
 | 
			
		||||
            os: ubuntu-latest
 | 
			
		||||
            install: clang-18
 | 
			
		||||
          - toolset: clang
 | 
			
		||||
            cxxstd: "03,11,14,17,20,2b"
 | 
			
		||||
            os: macos-12
 | 
			
		||||
          - toolset: clang
 | 
			
		||||
            cxxstd: "03,11,14,17,20,2b"
 | 
			
		||||
            os: macos-13
 | 
			
		||||
          - toolset: clang
 | 
			
		||||
            cxxstd: "03,11,14,17,20,2b"
 | 
			
		||||
            os: macos-14
 | 
			
		||||
 | 
			
		||||
    runs-on: ${{matrix.os}}
 | 
			
		||||
    container: ${{matrix.container}}
 | 
			
		||||
@@ -146,17 +182,23 @@ jobs:
 | 
			
		||||
        shell: bash
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Enable Node 16
 | 
			
		||||
        run: |
 | 
			
		||||
          echo "ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true" >> $GITHUB_ENV
 | 
			
		||||
 | 
			
		||||
      - uses: actions/checkout@v3
 | 
			
		||||
 | 
			
		||||
      - name: Setup container environment
 | 
			
		||||
        if: matrix.container
 | 
			
		||||
        run: |
 | 
			
		||||
          apt-get update
 | 
			
		||||
          apt-get -y install sudo python git g++
 | 
			
		||||
          apt-get -y install sudo python3 git g++
 | 
			
		||||
 | 
			
		||||
      - name: Install packages
 | 
			
		||||
        if: matrix.install
 | 
			
		||||
        run: sudo apt-get -y install ${{matrix.install}}
 | 
			
		||||
        run: |
 | 
			
		||||
          sudo apt-get update
 | 
			
		||||
          sudo apt-get -y install ${{matrix.install}}
 | 
			
		||||
 | 
			
		||||
      - name: Setup Boost
 | 
			
		||||
        run: |
 | 
			
		||||
@@ -176,7 +218,7 @@ jobs:
 | 
			
		||||
          cd boost-root
 | 
			
		||||
          cp -r $GITHUB_WORKSPACE/* libs/$LIBRARY
 | 
			
		||||
          git submodule update --init tools/boostdep
 | 
			
		||||
          python tools/boostdep/depinst/depinst.py --git_args "--jobs 3" $LIBRARY
 | 
			
		||||
          python3 tools/boostdep/depinst/depinst.py --git_args "--jobs 3" $LIBRARY
 | 
			
		||||
          ./bootstrap.sh
 | 
			
		||||
          ./b2 -d0 headers
 | 
			
		||||
 | 
			
		||||
@@ -208,7 +250,7 @@ jobs:
 | 
			
		||||
            addrmd: 32,64
 | 
			
		||||
            os: windows-2022
 | 
			
		||||
          - toolset: clang-win
 | 
			
		||||
            cxxstd: "14,17,latest"
 | 
			
		||||
            cxxstd: "14,17,20,latest"
 | 
			
		||||
            addrmd: 32,64
 | 
			
		||||
            os: windows-2022
 | 
			
		||||
          - toolset: gcc
 | 
			
		||||
@@ -219,7 +261,7 @@ jobs:
 | 
			
		||||
    runs-on: ${{matrix.os}}
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v3
 | 
			
		||||
      - uses: actions/checkout@v4
 | 
			
		||||
 | 
			
		||||
      - name: Setup Boost
 | 
			
		||||
        shell: cmd
 | 
			
		||||
@@ -256,13 +298,14 @@ jobs:
 | 
			
		||||
        include:
 | 
			
		||||
          - os: ubuntu-20.04
 | 
			
		||||
          - os: ubuntu-22.04
 | 
			
		||||
          - os: macos-11
 | 
			
		||||
          - os: macos-12
 | 
			
		||||
          - os: macos-13
 | 
			
		||||
          - os: macos-14
 | 
			
		||||
 | 
			
		||||
    runs-on: ${{matrix.os}}
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v3
 | 
			
		||||
      - uses: actions/checkout@v4
 | 
			
		||||
 | 
			
		||||
      - name: Install packages
 | 
			
		||||
        if: matrix.install
 | 
			
		||||
@@ -303,13 +346,14 @@ jobs:
 | 
			
		||||
        include:
 | 
			
		||||
          - os: ubuntu-20.04
 | 
			
		||||
          - os: ubuntu-22.04
 | 
			
		||||
          - os: macos-11
 | 
			
		||||
          - os: macos-12
 | 
			
		||||
          - os: macos-13
 | 
			
		||||
          - os: macos-14
 | 
			
		||||
 | 
			
		||||
    runs-on: ${{matrix.os}}
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v3
 | 
			
		||||
      - uses: actions/checkout@v4
 | 
			
		||||
 | 
			
		||||
      - name: Install packages
 | 
			
		||||
        if: matrix.install
 | 
			
		||||
@@ -360,13 +404,14 @@ jobs:
 | 
			
		||||
        include:
 | 
			
		||||
          - os: ubuntu-20.04
 | 
			
		||||
          - os: ubuntu-22.04
 | 
			
		||||
          - os: macos-11
 | 
			
		||||
          - os: macos-12
 | 
			
		||||
          - os: macos-13
 | 
			
		||||
          - os: macos-14
 | 
			
		||||
 | 
			
		||||
    runs-on: ${{matrix.os}}
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v3
 | 
			
		||||
      - uses: actions/checkout@v4
 | 
			
		||||
 | 
			
		||||
      - name: Install packages
 | 
			
		||||
        if: matrix.install
 | 
			
		||||
@@ -419,7 +464,7 @@ jobs:
 | 
			
		||||
    runs-on: ${{matrix.os}}
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v3
 | 
			
		||||
      - uses: actions/checkout@v4
 | 
			
		||||
 | 
			
		||||
      - name: Setup Boost
 | 
			
		||||
        shell: cmd
 | 
			
		||||
@@ -468,7 +513,7 @@ jobs:
 | 
			
		||||
    runs-on: ${{matrix.os}}
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v3
 | 
			
		||||
      - uses: actions/checkout@v4
 | 
			
		||||
 | 
			
		||||
      - name: Setup Boost
 | 
			
		||||
        shell: cmd
 | 
			
		||||
@@ -535,7 +580,7 @@ jobs:
 | 
			
		||||
    runs-on: ${{matrix.os}}
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v3
 | 
			
		||||
      - uses: actions/checkout@v4
 | 
			
		||||
 | 
			
		||||
      - name: Setup Boost
 | 
			
		||||
        shell: cmd
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										13
									
								
								appveyor.yml
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								appveyor.yml
									
									
									
									
									
								
							@@ -15,10 +15,19 @@ branches:
 | 
			
		||||
environment:
 | 
			
		||||
  matrix:
 | 
			
		||||
    - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
 | 
			
		||||
      TOOLSET: msvc-9.0,msvc-10.0,msvc-11.0
 | 
			
		||||
      TOOLSET: msvc-9.0
 | 
			
		||||
      ADDRMD: 32
 | 
			
		||||
    - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
 | 
			
		||||
      TOOLSET: msvc-12.0,msvc-14.0
 | 
			
		||||
      TOOLSET: msvc-10.0
 | 
			
		||||
      ADDRMD: 32
 | 
			
		||||
    - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
 | 
			
		||||
      TOOLSET: msvc-11.0
 | 
			
		||||
      ADDRMD: 32
 | 
			
		||||
    - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
 | 
			
		||||
      TOOLSET: msvc-12.0
 | 
			
		||||
      ADDRMD: 32,64
 | 
			
		||||
    - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
 | 
			
		||||
      TOOLSET: msvc-14.0
 | 
			
		||||
      ADDRMD: 32,64
 | 
			
		||||
    - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
 | 
			
		||||
      TOOLSET: msvc-14.1
 | 
			
		||||
 
 | 
			
		||||
@@ -16,7 +16,7 @@
 | 
			
		||||
    defined(BOOST_NO_CXX11_NULLPTR) || \
 | 
			
		||||
    defined(BOOST_NO_CXX11_SMART_PTR)
 | 
			
		||||
 | 
			
		||||
BOOST_PRAGMA_MESSAGE("C++03 support is deprecated in Boost.SmartPtr 1.82 and will be removed in Boost.SmartPtr 1.84.")
 | 
			
		||||
BOOST_PRAGMA_MESSAGE("C++03 support was deprecated in Boost.SmartPtr 1.82 and will be removed in Boost.SmartPtr 1.87.")
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -137,7 +137,7 @@ public:
 | 
			
		||||
 | 
			
		||||
    long use_count() const // nothrow
 | 
			
		||||
    {
 | 
			
		||||
        return atomic_load( &use_count_ );
 | 
			
		||||
        return static_cast<long>( atomic_load( &use_count_ ) );
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -17,8 +17,11 @@
 | 
			
		||||
// Defines the BOOST_SP_HAS_GCC_INTRINSICS macro if the __atomic_*
 | 
			
		||||
// intrinsics are available.
 | 
			
		||||
 | 
			
		||||
// Libraries (e.g. Kokkos) sometimes define the __ATOMIC_RELAXED macros,
 | 
			
		||||
// leading to errors under MSVC (https://github.com/boostorg/smart_ptr/pull/112)
 | 
			
		||||
 | 
			
		||||
#if defined( __ATOMIC_RELAXED ) && defined( __ATOMIC_ACQUIRE ) && defined( __ATOMIC_RELEASE ) && defined( __ATOMIC_ACQ_REL )
 | 
			
		||||
#if defined( __ATOMIC_RELAXED ) && defined( __ATOMIC_ACQUIRE ) && defined( __ATOMIC_RELEASE ) && defined( __ATOMIC_ACQ_REL ) \
 | 
			
		||||
    && !( defined(_MSC_VER) && !defined(__clang__) )
 | 
			
		||||
 | 
			
		||||
# define BOOST_SP_HAS_GCC_INTRINSICS
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,51 +1,23 @@
 | 
			
		||||
#ifndef BOOST_SMART_PTR_DETAIL_SP_THREAD_PAUSE_HPP_INCLUDED
 | 
			
		||||
#define BOOST_SMART_PTR_DETAIL_SP_THREAD_PAUSE_HPP_INCLUDED
 | 
			
		||||
 | 
			
		||||
// MS compatible compilers support #pragma once
 | 
			
		||||
 | 
			
		||||
#if defined(_MSC_VER) && (_MSC_VER >= 1020)
 | 
			
		||||
# pragma once
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// boost/smart_ptr/detail/sp_thread_pause.hpp
 | 
			
		||||
//
 | 
			
		||||
// inline void bost::detail::sp_thread_pause();
 | 
			
		||||
//
 | 
			
		||||
//   Emits a "pause" instruction.
 | 
			
		||||
//
 | 
			
		||||
// Copyright 2008, 2020 Peter Dimov
 | 
			
		||||
// Distributed under the Boost Software License, Version 1.0
 | 
			
		||||
// Copyright 2023 Peter Dimov
 | 
			
		||||
// Distributed under the Boost Software License, Version 1.0.
 | 
			
		||||
// https://www.boost.org/LICENSE_1_0.txt
 | 
			
		||||
 | 
			
		||||
#if defined(_MSC_VER) && _MSC_VER >= 1310 && ( defined(_M_IX86) || defined(_M_X64) ) && !defined(__c2__)
 | 
			
		||||
#include <boost/core/yield_primitives.hpp>
 | 
			
		||||
#include <boost/config/header_deprecated.hpp>
 | 
			
		||||
 | 
			
		||||
extern "C" void _mm_pause();
 | 
			
		||||
 | 
			
		||||
#define BOOST_SP_PAUSE _mm_pause();
 | 
			
		||||
 | 
			
		||||
#elif defined(__GNUC__) && ( defined(__i386__) || defined(__x86_64__) )
 | 
			
		||||
 | 
			
		||||
#define BOOST_SP_PAUSE __asm__ __volatile__( "rep; nop" : : : "memory" );
 | 
			
		||||
 | 
			
		||||
#else
 | 
			
		||||
 | 
			
		||||
#define BOOST_SP_PAUSE
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
BOOST_HEADER_DEPRECATED( "<boost/core/yield_primitives.hpp>" )
 | 
			
		||||
 | 
			
		||||
namespace boost
 | 
			
		||||
{
 | 
			
		||||
namespace detail
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
inline void sp_thread_pause()
 | 
			
		||||
{
 | 
			
		||||
    BOOST_SP_PAUSE
 | 
			
		||||
}
 | 
			
		||||
using boost::core::sp_thread_pause;
 | 
			
		||||
 | 
			
		||||
} // namespace detail
 | 
			
		||||
} // namespace boost
 | 
			
		||||
 | 
			
		||||
#undef BOOST_SP_PAUSE
 | 
			
		||||
 | 
			
		||||
#endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_THREAD_PAUSE_HPP_INCLUDED
 | 
			
		||||
 
 | 
			
		||||
@@ -1,104 +1,23 @@
 | 
			
		||||
#ifndef BOOST_SMART_PTR_DETAIL_SP_THREAD_SLEEP_HPP_INCLUDED
 | 
			
		||||
#define BOOST_SMART_PTR_DETAIL_SP_THREAD_SLEEP_HPP_INCLUDED
 | 
			
		||||
 | 
			
		||||
// MS compatible compilers support #pragma once
 | 
			
		||||
 | 
			
		||||
#if defined(_MSC_VER) && (_MSC_VER >= 1020)
 | 
			
		||||
# pragma once
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// boost/smart_ptr/detail/sp_thread_sleep.hpp
 | 
			
		||||
//
 | 
			
		||||
// inline void bost::detail::sp_thread_sleep();
 | 
			
		||||
//
 | 
			
		||||
//   Cease execution for a while to yield to other threads,
 | 
			
		||||
//   as if by calling nanosleep() with an appropriate interval.
 | 
			
		||||
//
 | 
			
		||||
// Copyright 2008, 2020 Peter Dimov
 | 
			
		||||
// Distributed under the Boost Software License, Version 1.0
 | 
			
		||||
// Copyright 2023 Peter Dimov
 | 
			
		||||
// Distributed under the Boost Software License, Version 1.0.
 | 
			
		||||
// https://www.boost.org/LICENSE_1_0.txt
 | 
			
		||||
 | 
			
		||||
#include <boost/config.hpp>
 | 
			
		||||
#include <boost/config/pragma_message.hpp>
 | 
			
		||||
#include <boost/core/yield_primitives.hpp>
 | 
			
		||||
#include <boost/config/header_deprecated.hpp>
 | 
			
		||||
 | 
			
		||||
#if defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ ) || defined( __CYGWIN__ )
 | 
			
		||||
 | 
			
		||||
#if defined(BOOST_SP_REPORT_IMPLEMENTATION)
 | 
			
		||||
  BOOST_PRAGMA_MESSAGE("Using Sleep(1) in sp_thread_sleep")
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include <boost/smart_ptr/detail/sp_win32_sleep.hpp>
 | 
			
		||||
BOOST_HEADER_DEPRECATED( "<boost/core/yield_primitives.hpp>" )
 | 
			
		||||
 | 
			
		||||
namespace boost
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
namespace detail
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
inline void sp_thread_sleep()
 | 
			
		||||
{
 | 
			
		||||
    Sleep( 1 );
 | 
			
		||||
}
 | 
			
		||||
using boost::core::sp_thread_sleep;
 | 
			
		||||
 | 
			
		||||
} // namespace detail
 | 
			
		||||
 | 
			
		||||
} // namespace boost
 | 
			
		||||
 | 
			
		||||
#elif defined(BOOST_HAS_NANOSLEEP)
 | 
			
		||||
 | 
			
		||||
#if defined(BOOST_SP_REPORT_IMPLEMENTATION)
 | 
			
		||||
  BOOST_PRAGMA_MESSAGE("Using nanosleep() in sp_thread_sleep")
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include <time.h>
 | 
			
		||||
 | 
			
		||||
namespace boost
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
namespace detail
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
inline void sp_thread_sleep()
 | 
			
		||||
{
 | 
			
		||||
    // g++ -Wextra warns on {} or {0}
 | 
			
		||||
    struct timespec rqtp = { 0, 0 };
 | 
			
		||||
 | 
			
		||||
    // POSIX says that timespec has tv_sec and tv_nsec
 | 
			
		||||
    // But it doesn't guarantee order or placement
 | 
			
		||||
 | 
			
		||||
    rqtp.tv_sec = 0;
 | 
			
		||||
    rqtp.tv_nsec = 1000;
 | 
			
		||||
 | 
			
		||||
    nanosleep( &rqtp, 0 );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
} // namespace detail
 | 
			
		||||
 | 
			
		||||
} // namespace boost
 | 
			
		||||
 | 
			
		||||
#else
 | 
			
		||||
 | 
			
		||||
#if defined(BOOST_SP_REPORT_IMPLEMENTATION)
 | 
			
		||||
  BOOST_PRAGMA_MESSAGE("Using sp_thread_yield() in sp_thread_sleep")
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include <boost/smart_ptr/detail/sp_thread_yield.hpp>
 | 
			
		||||
 | 
			
		||||
namespace boost
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
namespace detail
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
inline void sp_thread_sleep()
 | 
			
		||||
{
 | 
			
		||||
    sp_thread_yield();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
} // namespace detail
 | 
			
		||||
 | 
			
		||||
} // namespace boost
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_THREAD_SLEEP_HPP_INCLUDED
 | 
			
		||||
 
 | 
			
		||||
@@ -1,100 +1,23 @@
 | 
			
		||||
#ifndef BOOST_SMART_PTR_DETAIL_SP_THREAD_YIELD_HPP_INCLUDED
 | 
			
		||||
#define BOOST_SMART_PTR_DETAIL_SP_THREAD_YIELD_HPP_INCLUDED
 | 
			
		||||
 | 
			
		||||
// MS compatible compilers support #pragma once
 | 
			
		||||
 | 
			
		||||
#if defined(_MSC_VER) && (_MSC_VER >= 1020)
 | 
			
		||||
# pragma once
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// boost/smart_ptr/detail/sp_thread_yield.hpp
 | 
			
		||||
//
 | 
			
		||||
// inline void bost::detail::sp_thread_yield();
 | 
			
		||||
//
 | 
			
		||||
//   Gives up the remainder of the time slice,
 | 
			
		||||
//   as if by calling sched_yield().
 | 
			
		||||
//
 | 
			
		||||
// Copyright 2008, 2020 Peter Dimov
 | 
			
		||||
// Distributed under the Boost Software License, Version 1.0
 | 
			
		||||
// Copyright 2023 Peter Dimov
 | 
			
		||||
// Distributed under the Boost Software License, Version 1.0.
 | 
			
		||||
// https://www.boost.org/LICENSE_1_0.txt
 | 
			
		||||
 | 
			
		||||
#include <boost/config.hpp>
 | 
			
		||||
#include <boost/config/pragma_message.hpp>
 | 
			
		||||
#include <boost/core/yield_primitives.hpp>
 | 
			
		||||
#include <boost/config/header_deprecated.hpp>
 | 
			
		||||
 | 
			
		||||
#if defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ ) || defined( __CYGWIN__ )
 | 
			
		||||
 | 
			
		||||
#if defined(BOOST_SP_REPORT_IMPLEMENTATION)
 | 
			
		||||
  BOOST_PRAGMA_MESSAGE("Using Sleep(0) in sp_thread_yield")
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include <boost/smart_ptr/detail/sp_win32_sleep.hpp>
 | 
			
		||||
BOOST_HEADER_DEPRECATED( "<boost/core/yield_primitives.hpp>" )
 | 
			
		||||
 | 
			
		||||
namespace boost
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
namespace detail
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
inline void sp_thread_yield()
 | 
			
		||||
{
 | 
			
		||||
    Sleep( 0 );
 | 
			
		||||
}
 | 
			
		||||
using boost::core::sp_thread_yield;
 | 
			
		||||
 | 
			
		||||
} // namespace detail
 | 
			
		||||
 | 
			
		||||
} // namespace boost
 | 
			
		||||
 | 
			
		||||
#elif defined(BOOST_HAS_SCHED_YIELD)
 | 
			
		||||
 | 
			
		||||
#if defined(BOOST_SP_REPORT_IMPLEMENTATION)
 | 
			
		||||
  BOOST_PRAGMA_MESSAGE("Using sched_yield() in sp_thread_yield")
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef _AIX
 | 
			
		||||
# include <sched.h>
 | 
			
		||||
#else
 | 
			
		||||
  // AIX's sched.h defines ::var which sometimes conflicts with Lambda's var
 | 
			
		||||
  extern "C" int sched_yield(void);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
namespace boost
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
namespace detail
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
inline void sp_thread_yield()
 | 
			
		||||
{
 | 
			
		||||
    sched_yield();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
} // namespace detail
 | 
			
		||||
 | 
			
		||||
} // namespace boost
 | 
			
		||||
 | 
			
		||||
#else
 | 
			
		||||
 | 
			
		||||
#if defined(BOOST_SP_REPORT_IMPLEMENTATION)
 | 
			
		||||
  BOOST_PRAGMA_MESSAGE("Using sp_thread_pause() in sp_thread_yield")
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include <boost/smart_ptr/detail/sp_thread_pause.hpp>
 | 
			
		||||
 | 
			
		||||
namespace boost
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
namespace detail
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
inline void sp_thread_yield()
 | 
			
		||||
{
 | 
			
		||||
    sp_thread_pause();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
} // namespace detail
 | 
			
		||||
 | 
			
		||||
} // namespace boost
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_THREAD_YIELD_HPP_INCLUDED
 | 
			
		||||
 
 | 
			
		||||
@@ -1,49 +0,0 @@
 | 
			
		||||
#ifndef BOOST_SMART_PTR_DETAIL_SP_WIN32_SLEEP_HPP_INCLUDED
 | 
			
		||||
#define BOOST_SMART_PTR_DETAIL_SP_WIN32_SLEEP_HPP_INCLUDED
 | 
			
		||||
 | 
			
		||||
// MS compatible compilers support #pragma once
 | 
			
		||||
 | 
			
		||||
#if defined(_MSC_VER) && (_MSC_VER >= 1020)
 | 
			
		||||
# pragma once
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// boost/smart_ptr/detail/sp_win32_sleep.hpp
 | 
			
		||||
//
 | 
			
		||||
// Declares the Win32 Sleep() function.
 | 
			
		||||
//
 | 
			
		||||
// Copyright 2008, 2020 Peter Dimov
 | 
			
		||||
// Distributed under the Boost Software License, Version 1.0
 | 
			
		||||
// https://www.boost.org/LICENSE_1_0.txt
 | 
			
		||||
 | 
			
		||||
#if defined( BOOST_USE_WINDOWS_H )
 | 
			
		||||
# include <windows.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
namespace boost
 | 
			
		||||
{
 | 
			
		||||
namespace detail
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
#if !defined( BOOST_USE_WINDOWS_H )
 | 
			
		||||
 | 
			
		||||
#if defined(__clang__) && defined(__x86_64__)
 | 
			
		||||
// clang x64 warns that __stdcall is ignored
 | 
			
		||||
# define BOOST_SP_STDCALL
 | 
			
		||||
#else
 | 
			
		||||
# define BOOST_SP_STDCALL __stdcall
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(__LP64__) // Cygwin 64
 | 
			
		||||
  extern "C" __declspec(dllimport) void BOOST_SP_STDCALL Sleep( unsigned int ms );
 | 
			
		||||
#else
 | 
			
		||||
  extern "C" __declspec(dllimport) void BOOST_SP_STDCALL Sleep( unsigned long ms );
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#undef BOOST_SP_STDCALL
 | 
			
		||||
 | 
			
		||||
#endif // !defined( BOOST_USE_WINDOWS_H )
 | 
			
		||||
 | 
			
		||||
} // namespace detail
 | 
			
		||||
} // namespace boost
 | 
			
		||||
 | 
			
		||||
#endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_WIN32_SLEEP_HPP_INCLUDED
 | 
			
		||||
@@ -19,9 +19,7 @@
 | 
			
		||||
// Distributed under the Boost Software License, Version 1.0.
 | 
			
		||||
// https://www.boost.org/LICENSE_1_0.txt
 | 
			
		||||
 | 
			
		||||
#include <boost/smart_ptr/detail/sp_thread_pause.hpp>
 | 
			
		||||
#include <boost/smart_ptr/detail/sp_thread_sleep.hpp>
 | 
			
		||||
#include <boost/config.hpp>
 | 
			
		||||
#include <boost/core/yield_primitives.hpp>
 | 
			
		||||
 | 
			
		||||
namespace boost
 | 
			
		||||
{
 | 
			
		||||
@@ -34,13 +32,13 @@ inline void yield( unsigned k )
 | 
			
		||||
    // Experiments on Windows and Fedora 32 show that a single pause,
 | 
			
		||||
    // followed by an immediate sp_thread_sleep(), is best.
 | 
			
		||||
 | 
			
		||||
    if( k == 0 )
 | 
			
		||||
    if( k & 1 )
 | 
			
		||||
    {
 | 
			
		||||
        sp_thread_pause();
 | 
			
		||||
        boost::core::sp_thread_sleep();
 | 
			
		||||
    }
 | 
			
		||||
    else
 | 
			
		||||
    {
 | 
			
		||||
        sp_thread_sleep();
 | 
			
		||||
        boost::core::sp_thread_pause();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -247,17 +247,6 @@ template<class T, class U> inline bool operator!=(T * a, intrusive_ptr<U> const
 | 
			
		||||
    return a != b.get();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#if defined(__GNUC__) && __GNUC__ == 2 && __GNUC_MINOR__ <= 96
 | 
			
		||||
 | 
			
		||||
// Resolve the ambiguity between our op!= and the one in rel_ops
 | 
			
		||||
 | 
			
		||||
template<class T> inline bool operator!=(intrusive_ptr<T> const & a, intrusive_ptr<T> const & b) BOOST_SP_NOEXCEPT
 | 
			
		||||
{
 | 
			
		||||
    return a.get() != b.get();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !defined( BOOST_NO_CXX11_NULLPTR )
 | 
			
		||||
 | 
			
		||||
template<class T> inline bool operator==( intrusive_ptr<T> const & p, boost::detail::sp_nullptr_t ) BOOST_SP_NOEXCEPT
 | 
			
		||||
 
 | 
			
		||||
@@ -895,17 +895,6 @@ template<class T, class U> inline bool operator!=(shared_ptr<T> const & a, share
 | 
			
		||||
    return a.get() != b.get();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#if __GNUC__ == 2 && __GNUC_MINOR__ <= 96
 | 
			
		||||
 | 
			
		||||
// Resolve the ambiguity between our op!= and the one in rel_ops
 | 
			
		||||
 | 
			
		||||
template<class T> inline bool operator!=(shared_ptr<T> const & a, shared_ptr<T> const & b) BOOST_SP_NOEXCEPT
 | 
			
		||||
{
 | 
			
		||||
    return a.get() != b.get();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !defined( BOOST_NO_CXX11_NULLPTR )
 | 
			
		||||
 | 
			
		||||
template<class T> inline bool operator==( shared_ptr<T> const & p, boost::detail::sp_nullptr_t ) BOOST_SP_NOEXCEPT
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										39
									
								
								test/Jamfile
									
									
									
									
									
								
							
							
						
						
									
										39
									
								
								test/Jamfile
									
									
									
									
									
								
							@@ -8,6 +8,7 @@
 | 
			
		||||
#  http://www.boost.org/LICENSE_1_0.txt)
 | 
			
		||||
 | 
			
		||||
import testing ;
 | 
			
		||||
import ../../config/checks/config : requires ;
 | 
			
		||||
 | 
			
		||||
project
 | 
			
		||||
    : requirements
 | 
			
		||||
@@ -16,6 +17,8 @@ project
 | 
			
		||||
      #<toolset>gcc:<cxxflags>-Wno-delete-non-virtual-dtor (not in 4.4/4.6)
 | 
			
		||||
    ;
 | 
			
		||||
 | 
			
		||||
local cnhash = [ requires cxx11_decltype cxx11_noexcept ] <toolset>gcc-4.6:<build>no ;
 | 
			
		||||
 | 
			
		||||
# quick test (for CI)
 | 
			
		||||
run quick.cpp ;
 | 
			
		||||
 | 
			
		||||
@@ -92,9 +95,11 @@ compile-fail auto_ptr_lv_fail.cpp
 | 
			
		||||
run atomic_count_test2.cpp ;
 | 
			
		||||
run sp_typeinfo_test.cpp ;
 | 
			
		||||
compile make_shared_fp_test.cpp ;
 | 
			
		||||
run sp_hash_test.cpp ;
 | 
			
		||||
run sp_hash_test.cpp
 | 
			
		||||
  : : : $(cnhash) ;
 | 
			
		||||
run get_deleter_array_test.cpp ;
 | 
			
		||||
run ip_hash_test.cpp ;
 | 
			
		||||
run ip_hash_test.cpp
 | 
			
		||||
  : : : $(cnhash) ;
 | 
			
		||||
run owner_less_test.cpp ;
 | 
			
		||||
run sp_unique_ptr_test.cpp ;
 | 
			
		||||
run sp_array_test.cpp ;
 | 
			
		||||
@@ -221,8 +226,10 @@ run weak_from_this_test2.cpp ;
 | 
			
		||||
 | 
			
		||||
run sp_bml_unique_ptr_test.cpp ;
 | 
			
		||||
 | 
			
		||||
run sp_hash_test2.cpp ;
 | 
			
		||||
run sp_hash_test3.cpp ;
 | 
			
		||||
run sp_hash_test2.cpp
 | 
			
		||||
  : : : $(cnhash) ;
 | 
			
		||||
run sp_hash_test3.cpp
 | 
			
		||||
  : : : $(cnhash) ;
 | 
			
		||||
 | 
			
		||||
run pointer_cast_test2.cpp ;
 | 
			
		||||
 | 
			
		||||
@@ -368,11 +375,16 @@ compile-fail shared_from_fail.cpp ;
 | 
			
		||||
compile-fail weak_from_fail.cpp ;
 | 
			
		||||
 | 
			
		||||
compile sp_override_test.cpp ;
 | 
			
		||||
 | 
			
		||||
local gcc-flags = -Wundef ;
 | 
			
		||||
 | 
			
		||||
compile sp_pedantic_test.cpp
 | 
			
		||||
  : <warnings>pedantic
 | 
			
		||||
    <toolset>msvc:<warnings-as-errors>on
 | 
			
		||||
    <toolset>gcc:<warnings-as-errors>on
 | 
			
		||||
    <toolset>gcc:<cxxflags>$(gcc-flags)
 | 
			
		||||
    <toolset>clang:<warnings-as-errors>on
 | 
			
		||||
    <toolset>clang:<cxxflags>$(gcc-flags)
 | 
			
		||||
    <toolset>clang-15:<cxxflags>-Wno-deprecated-builtins
 | 
			
		||||
    ;
 | 
			
		||||
 | 
			
		||||
@@ -388,29 +400,34 @@ run owner_less_test2.cpp ;
 | 
			
		||||
 | 
			
		||||
run ip_hash_test2.cpp ;
 | 
			
		||||
run sp_hash_test4.cpp ;
 | 
			
		||||
run lsp_hash_test.cpp ;
 | 
			
		||||
 | 
			
		||||
run lsp_hash_test.cpp
 | 
			
		||||
  : : : $(cnhash)  ;
 | 
			
		||||
run lsp_hash_test2.cpp ;
 | 
			
		||||
 | 
			
		||||
local MT = <threading>multi [ requires cxx11_decltype cxx11_noexcept ] <toolset>gcc-4.6:<build>no ;
 | 
			
		||||
 | 
			
		||||
run atomic_count_mt_test.cpp
 | 
			
		||||
  : : : <threading>multi ;
 | 
			
		||||
  : : : $(MT) ;
 | 
			
		||||
 | 
			
		||||
run spinlock_mt_test.cpp
 | 
			
		||||
  : : : <threading>multi ;
 | 
			
		||||
  : : : $(MT) ;
 | 
			
		||||
 | 
			
		||||
run spinlock_pool_mt_test.cpp
 | 
			
		||||
  : : : <threading>multi ;
 | 
			
		||||
  : : : $(MT) ;
 | 
			
		||||
 | 
			
		||||
run shared_ptr_mt_test.cpp
 | 
			
		||||
  : : : <threading>multi ;
 | 
			
		||||
  : : : $(MT) ;
 | 
			
		||||
 | 
			
		||||
run weak_ptr_mt_test.cpp
 | 
			
		||||
  : : : <threading>multi ;
 | 
			
		||||
  : : : $(MT) ;
 | 
			
		||||
 | 
			
		||||
compile sp_report_implementation.cpp ;
 | 
			
		||||
 | 
			
		||||
run sp_owner_hash_value_test.cpp ;
 | 
			
		||||
 | 
			
		||||
run wp_hash_test.cpp ;
 | 
			
		||||
run wp_hash_test.cpp
 | 
			
		||||
  : : : $(cnhash) ;
 | 
			
		||||
run wp_hash_test2.cpp ;
 | 
			
		||||
 | 
			
		||||
run wp_unordered_test.cpp ;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user