diff --git a/.travis.yml b/.travis.yml index b481255d..9692e361 100644 --- a/.travis.yml +++ b/.travis.yml @@ -251,14 +251,6 @@ matrix: env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,1z osx_image: xcode6.4 - - os: linux - env: CMAKE_TEST_PROJECT=1 - install: true - script: - - mkdir __build__ && cd __build__ - - cmake ../test - - cmake --build . - install: - BOOST_BRANCH=develop && [ "$TRAVIS_BRANCH" == "master" ] && BOOST_BRANCH=master || true - cd .. diff --git a/README.md b/README.md index d98d250c..3cca3f6d 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,11 @@ This library provides configuration support for the Boost C++ libraries. The full documentation is available on [boost.org](http://www.boost.org/doc/libs/release/libs/config/index.html). +| | Master | Develop | +|------------------|----------|-------------| +| Travis | [![Build Status](https://travis-ci.org/boostorg/config.svg?branch=master)](https://travis-ci.org/boostorg/config) | [![Build Status](https://travis-ci.org/boostorg/config.png)](https://travis-ci.org/boostorg/config) | +| Appveyor | [![Build status](https://ci.appveyor.com/api/projects/status/wo2n2mhoy8vegmuo/branch/master?svg=true)](https://ci.appveyor.com/project/jzmaddock/config/branch/master) | [![Build status](https://ci.appveyor.com/api/projects/status/wo2n2mhoy8vegmuo/branch/develop?svg=true)](https://ci.appveyor.com/project/jzmaddock/config/branch/develop) | + ## Support, bugs and feature requests ## Bugs and feature requests can be reported through the [Gitub issue tracker](https://github.com/boostorg/config/issues) diff --git a/include/boost/config/compiler/gcc.hpp b/include/boost/config/compiler/gcc.hpp index 594c44f5..9ae6072e 100644 --- a/include/boost/config/compiler/gcc.hpp +++ b/include/boost/config/compiler/gcc.hpp @@ -232,7 +232,6 @@ // C++0x features in 4.6.n and later // #if (BOOST_GCC_VERSION < 40600) || !defined(BOOST_GCC_CXX11) -#define BOOST_NO_CXX11_CONSTEXPR #define BOOST_NO_CXX11_DEFAULTED_MOVES #define BOOST_NO_CXX11_NOEXCEPT #define BOOST_NO_CXX11_NULLPTR @@ -243,6 +242,9 @@ // C++0x features in 4.7.n and later // #if (BOOST_GCC_VERSION < 40700) || !defined(BOOST_GCC_CXX11) +// Note that while constexpr is partly supported in gcc-4.6 it's a +// pre-std version with several bugs: +# define BOOST_NO_CXX11_CONSTEXPR # define BOOST_NO_CXX11_FINAL # define BOOST_NO_CXX11_TEMPLATE_ALIASES # define BOOST_NO_CXX11_USER_DEFINED_LITERALS diff --git a/include/boost/config/platform/cygwin.hpp b/include/boost/config/platform/cygwin.hpp index 6dd7e57c..d0052d8b 100644 --- a/include/boost/config/platform/cygwin.hpp +++ b/include/boost/config/platform/cygwin.hpp @@ -42,8 +42,11 @@ # define BOOST_HAS_STDINT_H #endif +#include +#if (CYGWIN_VERSION_API_MAJOR == 0 && CYGWIN_VERSION_API_MINOR < 231) /// Cygwin has no fenv.h #define BOOST_NO_FENV_H +#endif // Cygwin has it's own which breaks unless the correct compiler flags are used: #ifndef BOOST_NO_CXX14_HDR_SHARED_MUTEX diff --git a/include/boost/version.hpp b/include/boost/version.hpp index c9afbd98..98ce61a1 100644 --- a/include/boost/version.hpp +++ b/include/boost/version.hpp @@ -19,7 +19,7 @@ // BOOST_VERSION / 100 % 1000 is the minor version // BOOST_VERSION / 100000 is the major version -#define BOOST_VERSION 106900 +#define BOOST_VERSION 107000 // // BOOST_LIB_VERSION must be defined to be the same as BOOST_VERSION @@ -27,6 +27,6 @@ // number, y is the minor version number, and z is the patch level if not 0. // This is used by to select which library version to link to. -#define BOOST_LIB_VERSION "1_69" +#define BOOST_LIB_VERSION "1_70" #endif diff --git a/test/boost_no_constexpr.ipp b/test/boost_no_constexpr.ipp index 35ac4891..1f3a96ee 100644 --- a/test/boost_no_constexpr.ipp +++ b/test/boost_no_constexpr.ipp @@ -32,13 +32,7 @@ private: template struct X { }; - -#if __cplusplus < 201400L -// Some C++14 compilers reject this (clang), some C++11 compilers reject "constexpr const" (GCC-4.6) -constexpr A a = 42; -#else constexpr const A a = 42; -#endif X xx; // OK: unique conversion to int @@ -68,9 +62,18 @@ struct F : virtual E }; constexpr F& f(F& out) { return out; } +namespace whatever{}; + +constexpr int factorial(int i) +{ + typedef int value_type; + using namespace whatever; + return i <= 1 ? 1 : i * factorial(value_type(i-1)); +} + int test() { - int i = square(5); + constexpr int i = square(5) + factorial(10); quiet_warning(i); switch (i)