1
0
forked from boostorg/mp11

Merge branch 'develop'

This commit is contained in:
Peter Dimov
2017-03-24 23:58:28 +02:00
5 changed files with 59 additions and 5 deletions

View File

@@ -27,6 +27,24 @@ matrix:
- env: BOGUS_JOB=true - env: BOGUS_JOB=true
include: include:
- os: linux
env: TOOLSET=gcc COMPILER=g++-4.7 CXXSTD=c++11
addons:
apt:
packages:
- g++-4.7
sources:
- ubuntu-toolchain-r-test
- os: linux
env: TOOLSET=gcc COMPILER=g++-4.8 CXXSTD=c++11
addons:
apt:
packages:
- g++-4.8
sources:
- ubuntu-toolchain-r-test
- os: linux - os: linux
env: TOOLSET=gcc COMPILER=g++-4.9 CXXSTD=c++11 env: TOOLSET=gcc COMPILER=g++-4.9 CXXSTD=c++11
addons: addons:
@@ -177,6 +195,9 @@ matrix:
- os: osx - os: osx
env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++14 env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++14
- os: osx
env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++1z
install: install:
- cd .. - cd ..
- git clone -b $TRAVIS_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root - git clone -b $TRAVIS_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root

View File

@@ -1,5 +1,5 @@
// Copyright 2015 Peter Dimov. // Copyright 2015-2017 Peter Dimov.
// //
// Distributed under the Boost Software License, Version 1.0. // Distributed under the Boost Software License, Version 1.0.
// //
@@ -23,7 +23,7 @@ template<class T> struct has_type
using type = decltype( f<T>(0) ); using type = decltype( f<T>(0) );
static const auto value = type::value; static const bool value = type::value;
}; };
using boost::mp11::mp_defer; using boost::mp11::mp_defer;

View File

@@ -11,6 +11,8 @@
#include <boost/mp11/list.hpp> #include <boost/mp11/list.hpp>
#include <boost/mp11/integral.hpp> #include <boost/mp11/integral.hpp>
#include <boost/core/lightweight_test_trait.hpp> #include <boost/core/lightweight_test_trait.hpp>
#include <boost/config.hpp>
#include <boost/detail/workaround.hpp>
#include <type_traits> #include <type_traits>
#include <tuple> #include <tuple>
@@ -21,6 +23,16 @@ struct X4 {};
template<class T1, class T2> struct F {}; template<class T1, class T2> struct F {};
#if BOOST_WORKAROUND( BOOST_GCC, < 40800 )
template<class A, class B> using mp_plus = std::integral_constant<typename std::remove_const<decltype( A::value + B::value )>::type, A::value + B::value>;
#else
using boost::mp11::mp_plus;
#endif
int main() int main()
{ {
using boost::mp11::mp_list; using boost::mp11::mp_list;
@@ -57,7 +69,6 @@ int main()
using boost::mp11::mp_iota_c; using boost::mp11::mp_iota_c;
using boost::mp11::mp_reverse; using boost::mp11::mp_reverse;
using boost::mp11::mp_size_t; using boost::mp11::mp_size_t;
using boost::mp11::mp_plus;
{ {
int const N = 37; int const N = 37;

View File

@@ -11,6 +11,8 @@
#include <boost/mp11/list.hpp> #include <boost/mp11/list.hpp>
#include <boost/mp11/integral.hpp> #include <boost/mp11/integral.hpp>
#include <boost/core/lightweight_test_trait.hpp> #include <boost/core/lightweight_test_trait.hpp>
#include <boost/config.hpp>
#include <boost/detail/workaround.hpp>
#include <type_traits> #include <type_traits>
#include <tuple> #include <tuple>
@@ -27,6 +29,16 @@ struct X10 {};
struct X11 {}; struct X11 {};
struct X12 {}; struct X12 {};
#if BOOST_WORKAROUND( BOOST_GCC, < 40800 )
template<class A, class B> using mp_plus = std::integral_constant<typename std::remove_const<decltype( A::value + B::value )>::type, A::value + B::value>;
#else
using boost::mp11::mp_plus;
#endif
int main() int main()
{ {
using boost::mp11::mp_list; using boost::mp11::mp_list;
@@ -71,7 +83,6 @@ int main()
using boost::mp11::mp_iota_c; using boost::mp11::mp_iota_c;
using boost::mp11::mp_size_t; using boost::mp11::mp_size_t;
using boost::mp11::mp_transform; using boost::mp11::mp_transform;
using boost::mp11::mp_plus;
using boost::mp11::mp_fill; using boost::mp11::mp_fill;
{ {

View File

@@ -11,6 +11,8 @@
#include <boost/mp11/list.hpp> #include <boost/mp11/list.hpp>
#include <boost/mp11/integral.hpp> #include <boost/mp11/integral.hpp>
#include <boost/core/lightweight_test_trait.hpp> #include <boost/core/lightweight_test_trait.hpp>
#include <boost/config.hpp>
#include <boost/detail/workaround.hpp>
#include <type_traits> #include <type_traits>
#include <tuple> #include <tuple>
@@ -27,6 +29,16 @@ using boost::mp11::mp_push_front;
template<class T, class L> using rev_push_back = mp_push_back<L, T>; template<class T, class L> using rev_push_back = mp_push_back<L, T>;
template<class T, class L> using rev_push_front = mp_push_front<L, T>; template<class T, class L> using rev_push_front = mp_push_front<L, T>;
#if BOOST_WORKAROUND( BOOST_GCC, < 40800 )
template<class A, class B> using mp_plus = std::integral_constant<typename std::remove_const<decltype( A::value + B::value )>::type, A::value + B::value>;
#else
using boost::mp11::mp_plus;
#endif
int main() int main()
{ {
using boost::mp11::mp_list; using boost::mp11::mp_list;
@@ -59,7 +71,6 @@ int main()
using boost::mp11::mp_iota_c; using boost::mp11::mp_iota_c;
using boost::mp11::mp_reverse; using boost::mp11::mp_reverse;
using boost::mp11::mp_size_t; using boost::mp11::mp_size_t;
using boost::mp11::mp_plus;
{ {
int const N = 37; int const N = 37;