diff --git a/.travis.yml b/.travis.yml index d749976..531fce3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -27,9 +27,11 @@ matrix: include: - os: linux + compiler: g++ env: TOOLSET=gcc COMPILER=g++ CXXSTD=c++03 - os: linux + compiler: g++-4.7 env: TOOLSET=gcc COMPILER=g++-4.7 CXXSTD=c++03 addons: apt: @@ -39,6 +41,7 @@ matrix: - ubuntu-toolchain-r-test - os: linux + compiler: g++-4.7 env: TOOLSET=gcc COMPILER=g++-4.7 CXXSTD=c++11 addons: apt: @@ -48,6 +51,7 @@ matrix: - ubuntu-toolchain-r-test - os: linux + compiler: g++-4.8 env: TOOLSET=gcc COMPILER=g++-4.8 CXXSTD=c++03 addons: apt: @@ -57,6 +61,7 @@ matrix: - ubuntu-toolchain-r-test - os: linux + compiler: g++-4.8 env: TOOLSET=gcc COMPILER=g++-4.8 CXXSTD=c++11 addons: apt: @@ -66,6 +71,7 @@ matrix: - ubuntu-toolchain-r-test - os: linux + compiler: g++-4.9 env: TOOLSET=gcc COMPILER=g++-4.9 CXXSTD=c++03 addons: apt: @@ -75,6 +81,7 @@ matrix: - ubuntu-toolchain-r-test - os: linux + compiler: g++-4.9 env: TOOLSET=gcc COMPILER=g++-4.9 CXXSTD=c++11 addons: apt: @@ -84,6 +91,7 @@ matrix: - ubuntu-toolchain-r-test - os: linux + compiler: g++-5 env: TOOLSET=gcc COMPILER=g++-5 CXXSTD=c++03 addons: apt: @@ -93,6 +101,7 @@ matrix: - ubuntu-toolchain-r-test - os: linux + compiler: g++-5 env: TOOLSET=gcc COMPILER=g++-5 CXXSTD=c++11 addons: apt: @@ -102,6 +111,7 @@ matrix: - ubuntu-toolchain-r-test - os: linux + compiler: g++-5 env: TOOLSET=gcc COMPILER=g++-5 CXXSTD=c++14 addons: apt: @@ -111,6 +121,17 @@ matrix: - ubuntu-toolchain-r-test - os: linux + compiler: g++-5 + env: TOOLSET=gcc COMPILER=g++-5 CXXSTD=c++1z + addons: + apt: + packages: + - g++-5 + sources: + - ubuntu-toolchain-r-test + + - os: linux + compiler: g++-6 env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=c++03 addons: apt: @@ -120,6 +141,7 @@ matrix: - ubuntu-toolchain-r-test - os: linux + compiler: g++-6 env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=c++11 addons: apt: @@ -129,6 +151,7 @@ matrix: - ubuntu-toolchain-r-test - os: linux + compiler: g++-6 env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=c++14 addons: apt: @@ -138,6 +161,7 @@ matrix: - ubuntu-toolchain-r-test - os: linux + compiler: g++-6 env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=c++1z addons: apt: @@ -191,9 +215,11 @@ matrix: - ubuntu-toolchain-r-test - os: linux + compiler: clang++ env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++03 - os: linux + compiler: clang++ env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++11 - os: linux @@ -241,6 +267,7 @@ matrix: - llvm-toolchain-precise-3.5 - os: linux + compiler: clang++-3.6 env: TOOLSET=clang COMPILER=clang++-3.6 CXXSTD=c++03 addons: apt: @@ -251,6 +278,7 @@ matrix: - llvm-toolchain-precise-3.6 - os: linux + compiler: clang++-3.6 env: TOOLSET=clang COMPILER=clang++-3.6 CXXSTD=c++11 addons: apt: @@ -261,6 +289,7 @@ matrix: - llvm-toolchain-precise-3.6 - os: linux + compiler: clang++-3.6 env: TOOLSET=clang COMPILER=clang++-3.6 CXXSTD=c++14 addons: apt: @@ -271,6 +300,7 @@ matrix: - llvm-toolchain-precise-3.6 - os: linux + compiler: clang++-3.6 env: TOOLSET=clang COMPILER=clang++-3.6 CXXSTD=c++1z addons: apt: @@ -281,6 +311,7 @@ matrix: - llvm-toolchain-precise-3.6 - os: linux + compiler: clang++-3.7 env: TOOLSET=clang COMPILER=clang++-3.7 CXXSTD=c++03 addons: apt: @@ -291,6 +322,7 @@ matrix: - llvm-toolchain-precise-3.7 - os: linux + compiler: clang++-3.7 env: TOOLSET=clang COMPILER=clang++-3.7 CXXSTD=c++11 addons: apt: @@ -301,6 +333,7 @@ matrix: - llvm-toolchain-precise-3.7 - os: linux + compiler: clang++-3.7 env: TOOLSET=clang COMPILER=clang++-3.7 CXXSTD=c++14 addons: apt: @@ -311,6 +344,7 @@ matrix: - llvm-toolchain-precise-3.7 - os: linux + compiler: clang++-3.7 env: TOOLSET=clang COMPILER=clang++-3.7 CXXSTD=c++1z addons: apt: @@ -321,6 +355,7 @@ matrix: - llvm-toolchain-precise-3.7 - os: linux + compiler: clang++-3.8 env: TOOLSET=clang COMPILER=clang++-3.8 CXXSTD=c++03 addons: apt: @@ -331,6 +366,7 @@ matrix: - llvm-toolchain-precise-3.8 - os: linux + compiler: clang++-3.8 env: TOOLSET=clang COMPILER=clang++-3.8 CXXSTD=c++11 addons: apt: @@ -341,6 +377,7 @@ matrix: - llvm-toolchain-precise-3.8 - os: linux + compiler: clang++-3.8 env: TOOLSET=clang COMPILER=clang++-3.8 CXXSTD=c++14 addons: apt: @@ -351,6 +388,7 @@ matrix: - llvm-toolchain-precise-3.8 - os: linux + compiler: clang++-3.8 env: TOOLSET=clang COMPILER=clang++-3.8 CXXSTD=c++1z addons: apt: @@ -361,6 +399,7 @@ matrix: - llvm-toolchain-precise-3.8 - os: linux + compiler: clang++-3.9 env: TOOLSET=clang COMPILER=clang++-3.9 CXXSTD=c++03 addons: apt: @@ -371,6 +410,7 @@ matrix: - llvm-toolchain-precise-3.9 - os: linux + compiler: clang++-3.9 env: TOOLSET=clang COMPILER=clang++-3.9 CXXSTD=c++11 addons: apt: @@ -381,6 +421,7 @@ matrix: - llvm-toolchain-precise-3.9 - os: linux + compiler: clang++-3.9 env: TOOLSET=clang COMPILER=clang++-3.9 CXXSTD=c++14 addons: apt: @@ -391,6 +432,7 @@ matrix: - llvm-toolchain-precise-3.9 - os: linux + compiler: clang++-3.9 env: TOOLSET=clang COMPILER=clang++-3.9 CXXSTD=c++1z addons: apt: @@ -445,15 +487,19 @@ matrix: - llvm-toolchain-trusty-4.0 - os: osx + compiler: clang++ env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++03 - os: osx + compiler: clang++ env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++11 - os: osx + compiler: clang++ env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++14 - os: osx + compiler: clang++ env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++1z install: diff --git a/doc/smart_ptr/shared_ptr.adoc b/doc/smart_ptr/shared_ptr.adoc index 0e0ef82..64761dd 100644 --- a/doc/smart_ptr/shared_ptr.adoc +++ b/doc/smart_ptr/shared_ptr.adoc @@ -114,8 +114,8 @@ namespace boost { typedef /*see below*/ element_type; - shared_ptr() noexcept; - shared_ptr(std::nullptr_t) noexcept; + constexpr shared_ptr() noexcept; + constexpr shared_ptr(std::nullptr_t) noexcept; template explicit shared_ptr(Y * p); template shared_ptr(Y * p, D d); @@ -162,6 +162,7 @@ namespace boost { template void reset(Y * p, D d, A a); template void reset(shared_ptr const & r, element_type * p) noexcept; + template void reset(shared_ptr && r, element_type * p) noexcept; T & operator*() const noexcept; // only valid when T is not an array type T * operator->() const noexcept; // only valid when T is not an array type @@ -257,10 +258,10 @@ typedef ... element_type; ### default constructor ``` -shared_ptr() noexcept; +constexpr shared_ptr() noexcept; ``` ``` -shared_ptr(std::nullptr_t) noexcept; +constexpr shared_ptr(std::nullptr_t) noexcept; ``` [none] * {blank} @@ -372,7 +373,7 @@ template shared_ptr(shared_ptr const & r, element_type * p) noexcept [none] * {blank} + -Effects:: constructs a shared_ptr that shares ownership with r and stores p. +Effects:: constructs a `shared_ptr` that shares ownership with `r` and stores `p`. Postconditions:: `get() == p && use_count() == r.use_count()`.