Merge branch 'reference'

This commit is contained in:
Simon Brand
2018-02-23 09:25:42 +00:00
3 changed files with 71 additions and 12 deletions

View File

@@ -12,7 +12,7 @@ matrix:
- ubuntu-toolchain-r-test - ubuntu-toolchain-r-test
packages: packages:
- g++-5 - g++-5
env: COMPILER=g++-5 env: COMPILER=g++-5 CXXSTD=11
- compiler: gcc - compiler: gcc
addons: addons:
apt: apt:
@@ -20,7 +20,7 @@ matrix:
- ubuntu-toolchain-r-test - ubuntu-toolchain-r-test
packages: packages:
- g++-4.9 - g++-4.9
env: COMPILER=g++-4.9 env: COMPILER=g++-4.9 CXXSTD=11
- compiler: gcc - compiler: gcc
addons: addons:
apt: apt:
@@ -28,7 +28,7 @@ matrix:
- ubuntu-toolchain-r-test - ubuntu-toolchain-r-test
packages: packages:
- g++-4.8 - g++-4.8
env: COMPILER=g++-4.8 env: COMPILER=g++-4.8 CXXSTD=11
- compiler: clang - compiler: clang
addons: addons:
apt: apt:
@@ -38,7 +38,7 @@ matrix:
packages: packages:
- clang++-3.5 - clang++-3.5
- libc++-dev - libc++-dev
env: COMPILER=clang++-3.5 env: COMPILER=clang++-3.5 CXXSTD=11
- compiler: clang - compiler: clang
addons: addons:
apt: apt:
@@ -48,7 +48,7 @@ matrix:
packages: packages:
- clang++-3.6 - clang++-3.6
- libc++-dev - libc++-dev
env: COMPILER=clang++-3.6 env: COMPILER=clang++-3.6 CXXSTD=11
- compiler: clang - compiler: clang
addons: addons:
apt: apt:
@@ -58,7 +58,7 @@ matrix:
packages: packages:
- clang++-3.7 - clang++-3.7
- libc++-dev - libc++-dev
env: COMPILER=clang++-3.7 env: COMPILER=clang++-3.7 CXXSTD=11
- compiler: clang - compiler: clang
addons: addons:
apt: apt:
@@ -68,7 +68,7 @@ matrix:
packages: packages:
- clang++-3.8 - clang++-3.8
- libc++-dev - libc++-dev
env: COMPILER=clang++-3.8 env: COMPILER=clang++-3.8 CXXSTD=11
- compiler: clang - compiler: clang
addons: addons:
apt: apt:
@@ -79,11 +79,70 @@ matrix:
packages: packages:
- clang++-3.9 - clang++-3.9
- libc++-dev - libc++-dev
env: COMPILER=clang++-3.9 env: COMPILER=clang++-3.9 CXXSTD=11
- compiler: gcc
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-5
env: COMPILER=g++-5 CXXSTD=14
- compiler: clang
addons:
apt:
sources:
- llvm-toolchain-precise-3.5
- ubuntu-toolchain-r-test
packages:
- clang++-3.5
- libc++-dev
env: COMPILER=clang++-3.5 CXXSTD=14
- compiler: clang
addons:
apt:
sources:
- llvm-toolchain-precise-3.6
- ubuntu-toolchain-r-test
packages:
- clang++-3.6
- libc++-dev
env: COMPILER=clang++-3.6 CXXSTD=14
- compiler: clang
addons:
apt:
sources:
- llvm-toolchain-precise-3.7
- ubuntu-toolchain-r-test
packages:
- clang++-3.7
- libc++-dev
env: COMPILER=clang++-3.7 CXXSTD=14
- compiler: clang
addons:
apt:
sources:
- llvm-toolchain-precise-3.8
- ubuntu-toolchain-r-test
packages:
- clang++-3.8
- libc++-dev
env: COMPILER=clang++-3.8 CXXSTD=14
- compiler: clang
addons:
apt:
sources:
- sourceline: "deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-3.9 main"
key_url: "http://apt.llvm.org/llvm-snapshot.gpg.key"
- ubuntu-toolchain-r-test
packages:
- clang++-3.9
- libc++-dev
env: COMPILER=clang++-3.9 CXXSTD=14
install: install:
- if [ "$CXX" = "clang++" ]; then export CXX="$COMPILER -stdlib=libc++"; fi - if [ "$CXX" = "clang++" ]; then export CXX="$COMPILER -stdlib=libc++"; fi
- if [ "$CXX" = "g++" ]; then export CXX="$COMPILER"; fi - if [ "$CXX" = "g++" ]; then export CXX="$COMPILER"; fi
script: mkdir build && cd build && cmake .. && make && ./tests script: mkdir build && cd build && cmake -DCXXSTD=$CXXSTD .. && make && ./tests

View File

@@ -28,8 +28,9 @@ target_sources(optional INTERFACE ${CMAKE_SOURCE_DIR}/tl/optional.hpp)
target_include_directories(optional INTERFACE ${CMAKE_SOURCE_DIR}/tl) target_include_directories(optional INTERFACE ${CMAKE_SOURCE_DIR}/tl)
target_link_libraries(tests Catch optional) target_link_libraries(tests Catch optional)
set_property(TARGET tests PROPERTY CXX_STANDARD 14)
set(CXXSTD 14 CACHE STRING "C++ standard to use, default C++14")
set_property(TARGET tests PROPERTY CXX_STANDARD ${CXXSTD})
find_package(standardese) # find standardese after installation find_package(standardese) # find standardese after installation

View File

@@ -64,8 +64,7 @@
// constexpr implies const in C++11, not C++14 // constexpr implies const in C++11, not C++14
#if (__cplusplus == 201103L || defined(TL_OPTIONAL_MSVC2015) || \ #if (__cplusplus == 201103L || defined(TL_OPTIONAL_MSVC2015) || \
defined(TL_OPTIONAL_GCC49)) && \ defined(TL_OPTIONAL_GCC49))
!defined(TL_OPTIONAL_GCC54)
/// \exclude /// \exclude
#define TL_OPTIONAL_11_CONSTEXPR #define TL_OPTIONAL_11_CONSTEXPR
#else #else