Compare commits

...

11 Commits

66 changed files with 197 additions and 175 deletions

View File

@ -8,14 +8,11 @@ sudo: false
python: "2.7"
os:
- linux
- osx
branches:
only:
- master
- develop
- /feature\/.*/
env:
matrix:
@ -28,10 +25,12 @@ matrix:
include:
- os: linux
env: TOOLSET=gcc COMPILER=g++ CXXSTD=c++03
compiler: g++
env: TOOLSET=gcc COMPILER=g++ CXXSTD=03,11
- os: linux
env: TOOLSET=gcc COMPILER=g++-4.7 CXXSTD=c++03
compiler: g++-4.7
env: TOOLSET=gcc COMPILER=g++-4.7 CXXSTD=03,11
addons:
apt:
packages:
@ -40,34 +39,17 @@ matrix:
- ubuntu-toolchain-r-test
- 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++03
compiler: g++-4.8
env: TOOLSET=gcc COMPILER=g++-4.8 CXXSTD=03,11
addons:
apt:
packages:
- g++-4.8
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
env: TOOLSET=gcc COMPILER=g++-4.9 CXXSTD=c++03
compiler: g++-4.9
env: TOOLSET=gcc COMPILER=g++-4.9 CXXSTD=03,11
addons:
apt:
packages:
@ -76,16 +58,8 @@ matrix:
- ubuntu-toolchain-r-test
- os: linux
env: TOOLSET=gcc COMPILER=g++-4.9 CXXSTD=c++11
addons:
apt:
packages:
- g++-4.9
sources:
- ubuntu-toolchain-r-test
- os: linux
env: TOOLSET=gcc COMPILER=g++-5 CXXSTD=c++03
compiler: g++-5
env: TOOLSET=gcc COMPILER=g++-5 CXXSTD=03,11,14,1z
addons:
apt:
packages:
@ -94,25 +68,8 @@ matrix:
- ubuntu-toolchain-r-test
- os: linux
env: TOOLSET=gcc COMPILER=g++-5 CXXSTD=c++11
addons:
apt:
packages:
- g++-5
sources:
- ubuntu-toolchain-r-test
- os: linux
env: TOOLSET=gcc COMPILER=g++-5 CXXSTD=c++14
addons:
apt:
packages:
- g++-5
sources:
- ubuntu-toolchain-r-test
- os: linux
env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=c++03
compiler: g++-6
env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=03,11,14,1z
addons:
apt:
packages:
@ -121,60 +78,35 @@ matrix:
- ubuntu-toolchain-r-test
- os: linux
env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=c++11
dist: trusty
compiler: g++-7
env: TOOLSET=gcc COMPILER=g++-7 CXXSTD=03,11,14,17
addons:
apt:
packages:
- g++-6
- g++-7
sources:
- ubuntu-toolchain-r-test
- os: linux
env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=c++14
addons:
apt:
packages:
- g++-6
sources:
- ubuntu-toolchain-r-test
compiler: clang++
env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11
- os: linux
env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=c++1z
addons:
apt:
packages:
- g++-6
sources:
- ubuntu-toolchain-r-test
- os: linux
env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++03
- os: linux
env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++11
- os: linux
env: TOOLSET=clang COMPILER=clang++-3.5 CXXSTD=c++03
compiler: clang++-3.5
env: TOOLSET=clang COMPILER=clang++-3.5 CXXSTD=03,11,14,1z
addons:
apt:
packages:
- clang-3.5
- libstdc++-4.9-dev
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.5
- os: linux
env: TOOLSET=clang COMPILER=clang++-3.5 CXXSTD=c++11
addons:
apt:
packages:
- clang-3.5
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.5
- os: linux
env: TOOLSET=clang COMPILER=clang++-3.6 CXXSTD=c++03
compiler: clang++-3.6
env: TOOLSET=clang COMPILER=clang++-3.6 CXXSTD=03,11,14,1z
addons:
apt:
packages:
@ -184,17 +116,8 @@ matrix:
- llvm-toolchain-precise-3.6
- os: linux
env: TOOLSET=clang COMPILER=clang++-3.6 CXXSTD=c++11
addons:
apt:
packages:
- clang-3.6
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.6
- os: linux
env: TOOLSET=clang COMPILER=clang++-3.7 CXXSTD=c++03
compiler: clang++-3.7
env: TOOLSET=clang COMPILER=clang++-3.7 CXXSTD=03,11,14,1z
addons:
apt:
packages:
@ -204,110 +127,59 @@ matrix:
- llvm-toolchain-precise-3.7
- os: linux
env: TOOLSET=clang COMPILER=clang++-3.7 CXXSTD=c++11
addons:
apt:
packages:
- clang-3.7
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.7
- os: linux
env: TOOLSET=clang COMPILER=clang++-3.8 CXXSTD=c++03
compiler: clang++-3.8
env: TOOLSET=clang COMPILER=clang++-3.8 CXXSTD=03,11,14,1z
addons:
apt:
packages:
- clang-3.8
- libstdc++-4.9-dev
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.8
- os: linux
env: TOOLSET=clang COMPILER=clang++-3.8 CXXSTD=c++11
addons:
apt:
packages:
- clang-3.8
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.8
- os: linux
env: TOOLSET=clang COMPILER=clang++-3.8 CXXSTD=c++14
addons:
apt:
packages:
- clang-3.8
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.8
- os: linux
env: TOOLSET=clang COMPILER=clang++-3.8 CXXSTD=c++1z
addons:
apt:
packages:
- clang-3.8
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.8
- os: linux
env: TOOLSET=clang COMPILER=clang++-3.9 CXXSTD=c++03
compiler: clang++-3.9
env: TOOLSET=clang COMPILER=clang++-3.9 CXXSTD=03,11,14,1z
addons:
apt:
packages:
- clang-3.9
- libstdc++-4.9-dev
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.9
- os: linux
env: TOOLSET=clang COMPILER=clang++-3.9 CXXSTD=c++11
compiler: clang++-4.0
env: TOOLSET=clang COMPILER=clang++-4.0 CXXSTD=03,11,14,1z
addons:
apt:
packages:
- clang-3.9
- clang-4.0
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.9
- llvm-toolchain-trusty-4.0
- os: linux
env: TOOLSET=clang COMPILER=clang++-3.9 CXXSTD=c++14
compiler: clang++-5.0
env: TOOLSET=clang COMPILER=clang++-5.0 CXXSTD=03,11,14,1z
addons:
apt:
packages:
- clang-3.9
- clang-5.0
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.9
- os: linux
env: TOOLSET=clang COMPILER=clang++-3.9 CXXSTD=c++1z
addons:
apt:
packages:
- clang-3.9
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.9
- llvm-toolchain-trusty-5.0
- os: osx
env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++03
- os: osx
env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++11
- os: osx
env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++14
- os: osx
env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++1z
compiler: clang++
env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,1z
install:
- BOOST_BRANCH=develop && [ "$TRAVIS_BRANCH" == "master" ] && BOOST_BRANCH=master || true
- cd ..
- git clone -b $TRAVIS_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root
- git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root
- cd boost-root
- git submodule update --init tools/build
- git submodule update --init libs/config
@ -319,8 +191,8 @@ install:
script:
- |-
echo "using $TOOLSET : : $COMPILER : <cxxflags>-std=$CXXSTD ;" > ~/user-config.jam
- ./b2 libs/typeof/test toolset=$TOOLSET
echo "using $TOOLSET : : $COMPILER ;" > ~/user-config.jam
- ./b2 libs/typeof/test toolset=$TOOLSET cxxstd=$CXXSTD
notifications:
email:

62
appveyor.yml Normal file
View File

@ -0,0 +1,62 @@
# Copyright 2016 Peter Dimov
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
version: 1.0.{build}-{branch}
shallow_clone: true
branches:
only:
- master
- develop
platform:
- x64
environment:
matrix:
- ARGS: --toolset=msvc-9.0 address-model=32
- ARGS: --toolset=msvc-10.0 address-model=32
- ARGS: --toolset=msvc-11.0 address-model=32
- ARGS: --toolset=msvc-12.0 address-model=32
- ARGS: --toolset=msvc-14.0 address-model=32
- ARGS: --toolset=msvc-12.0 address-model=64
- ARGS: --toolset=msvc-14.0 address-model=64
- ARGS: --toolset=msvc-14.0 address-model=64 cxxflags=-std:c++latest
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
ARGS: --toolset=msvc-14.1 address-model=64
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
ARGS: --toolset=msvc-14.1 address-model=32
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
ARGS: --toolset=msvc-14.1 address-model=64 cxxflags=-std:c++latest
- ARGS: --toolset=gcc address-model=64
PATH: C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1\mingw64\bin;%PATH%
- ARGS: --toolset=gcc address-model=64 cxxflags=-std=gnu++1z
PATH: C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1\mingw64\bin;%PATH%
- ARGS: --toolset=gcc address-model=32
PATH: C:\mingw-w64\i686-5.3.0-posix-dwarf-rt_v4-rev0\mingw32\bin;%PATH%
- ARGS: --toolset=gcc address-model=32 linkflags=-Wl,-allow-multiple-definition
PATH: C:\MinGW\bin;%PATH%
install:
- cd ..
- git clone -b %APPVEYOR_REPO_BRANCH% --depth 1 https://github.com/boostorg/boost.git boost-root
- cd boost-root
- git submodule update --init tools/build
- git submodule update --init libs/config
- git submodule update --init tools/boostdep
- xcopy /s /e /q %APPVEYOR_BUILD_FOLDER% libs\typeof\
- python tools/boostdep/depinst/depinst.py typeof
- bootstrap
- b2 headers
build: off
test_script:
- cd libs\config\test
- ..\..\..\b2 config_info_travis_install %ARGS%
- config_info_travis
- cd ..\..\typeof\test
- ..\..\..\b2 -j3 %ARGS% define=CI_SUPPRESS_KNOWN_ISSUES

0
include/boost/typeof/dmc/typeof_impl.hpp Executable file → Normal file
View File

0
include/boost/typeof/encode_decode.hpp Executable file → Normal file
View File

0
include/boost/typeof/encode_decode_params.hpp Executable file → Normal file
View File

0
include/boost/typeof/incr_registration_group.hpp Executable file → Normal file
View File

0
include/boost/typeof/int_encoding.hpp Executable file → Normal file
View File

0
include/boost/typeof/integral_template_param.hpp Executable file → Normal file
View File

0
include/boost/typeof/modifiers.hpp Executable file → Normal file
View File

0
include/boost/typeof/pointers_data_members.hpp Executable file → Normal file
View File

0
include/boost/typeof/register_mem_functions.hpp Executable file → Normal file
View File

0
include/boost/typeof/std/bitset.hpp Executable file → Normal file
View File

0
include/boost/typeof/std/complex.hpp Executable file → Normal file
View File

0
include/boost/typeof/std/deque.hpp Executable file → Normal file
View File

0
include/boost/typeof/std/fstream.hpp Executable file → Normal file
View File

6
include/boost/typeof/std/functional.hpp Executable file → Normal file
View File

@ -10,8 +10,10 @@
#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
#ifndef BOOST_NO_CXX98_FUNCTION_BASE
BOOST_TYPEOF_REGISTER_TEMPLATE(std::unary_function, 2)
BOOST_TYPEOF_REGISTER_TEMPLATE(std::binary_function, 3)
#endif//BOOST_NO_CXX98_FUNCTION_BASE
BOOST_TYPEOF_REGISTER_TEMPLATE(std::plus, 1)
BOOST_TYPEOF_REGISTER_TEMPLATE(std::minus, 1)
BOOST_TYPEOF_REGISTER_TEMPLATE(std::multiplies, 1)
@ -30,6 +32,8 @@ BOOST_TYPEOF_REGISTER_TEMPLATE(std::logical_not, 1)
BOOST_TYPEOF_REGISTER_TEMPLATE(std::unary_negate, 1)
BOOST_TYPEOF_REGISTER_TEMPLATE(std::binary_negate, 1)
#ifndef BOOST_NO_CXX98_BINDERS
#if defined(__MWERKS__) && defined(_MSL_EXTENDED_BINDERS)
BOOST_TYPEOF_REGISTER_TEMPLATE(std::binder1st, 2)
BOOST_TYPEOF_REGISTER_TEMPLATE(std::binder2nd, 2)
@ -52,4 +56,6 @@ BOOST_TYPEOF_REGISTER_TEMPLATE(std::mem_fun1_ref_t, 3)
BOOST_TYPEOF_REGISTER_TEMPLATE(std::const_mem_fun1_ref_t, 3)
#endif//BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, == 1)
#endif//BOOST_NO_CXX98_BINDERS
#endif//BOOST_TYPEOF_STD_functional_hpp_INCLUDED

0
include/boost/typeof/std/iostream.hpp Executable file → Normal file
View File

0
include/boost/typeof/std/istream.hpp Executable file → Normal file
View File

0
include/boost/typeof/std/iterator.hpp Executable file → Normal file
View File

0
include/boost/typeof/std/list.hpp Executable file → Normal file
View File

0
include/boost/typeof/std/locale.hpp Executable file → Normal file
View File

0
include/boost/typeof/std/map.hpp Executable file → Normal file
View File

2
include/boost/typeof/std/memory.hpp Executable file → Normal file
View File

@ -12,6 +12,8 @@
BOOST_TYPEOF_REGISTER_TEMPLATE(std::allocator, 1)
BOOST_TYPEOF_REGISTER_TEMPLATE(std::raw_storage_iterator, 2)
#ifndef BOOST_NO_AUTO_PTR
BOOST_TYPEOF_REGISTER_TEMPLATE(std::auto_ptr, 1)
#endif//BOOST_NO_AUTO_PTR
#endif//BOOST_TYPEOF_STD_memory_hpp_INCLUDED

0
include/boost/typeof/std/ostream.hpp Executable file → Normal file
View File

0
include/boost/typeof/std/queue.hpp Executable file → Normal file
View File

0
include/boost/typeof/std/set.hpp Executable file → Normal file
View File

0
include/boost/typeof/std/sstream.hpp Executable file → Normal file
View File

0
include/boost/typeof/std/stack.hpp Executable file → Normal file
View File

0
include/boost/typeof/std/streambuf.hpp Executable file → Normal file
View File

0
include/boost/typeof/std/string.hpp Executable file → Normal file
View File

0
include/boost/typeof/std/utility.hpp Executable file → Normal file
View File

0
include/boost/typeof/std/valarray.hpp Executable file → Normal file
View File

0
include/boost/typeof/std/vector.hpp Executable file → Normal file
View File

0
include/boost/typeof/template_encoding.hpp Executable file → Normal file
View File

0
include/boost/typeof/template_template_param.hpp Executable file → Normal file
View File

0
include/boost/typeof/type_encoding.hpp Executable file → Normal file
View File

0
include/boost/typeof/type_template_param.hpp Executable file → Normal file
View File

View File

@ -14,8 +14,9 @@
#endif
#include <boost/config.hpp>
#include <boost/config/workaround.hpp>
#if !defined(BOOST_NO_CXX11_DECLTYPE) && !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) && !defined(BOOST_TYPEOF_EMULATION)
#if !BOOST_WORKAROUND(BOOST_MSVC, <= 1900) && !defined(BOOST_NO_CXX11_DECLTYPE) && !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) && !defined(BOOST_TYPEOF_EMULATION)
# define BOOST_TYPEOF_DECLTYPE
# ifndef BOOST_TYPEOF_NATIVE
# define BOOST_TYPEOF_NATIVE

0
include/boost/typeof/typeof_impl.hpp Executable file → Normal file
View File

0
include/boost/typeof/vector.hpp Executable file → Normal file
View File

0
include/boost/typeof/vector100.hpp Executable file → Normal file
View File

0
include/boost/typeof/vector150.hpp Executable file → Normal file
View File

0
include/boost/typeof/vector200.hpp Executable file → Normal file
View File

0
include/boost/typeof/vector50.hpp Executable file → Normal file
View File

View File

@ -5,6 +5,7 @@
# Boost Typeof Library test Jamfile
import testing ;
import set ;
# The special requirement is not ported yet.

0
test/data_member.cpp Executable file → Normal file
View File

0
test/member_function.cpp Executable file → Normal file
View File

0
test/modifiers.cpp Executable file → Normal file
View File

View File

@ -0,0 +1,74 @@
// Copyright (C) 2018 Tobias Loew
// Use, modification and distribution is subject to the Boost Software
// License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
#include <boost/config.hpp>
#include <boost/config/pragma_message.hpp>
#if defined(BOOST_NO_CXX11_LAMBDAS)
BOOST_PRAGMA_MESSAGE("Skipping test due to BOOST_NO_CXX11_LAMBDAS")
int main() {}
#elif defined(BOOST_NO_CXX11_AUTO_DECLARATIONS)
BOOST_PRAGMA_MESSAGE("Skipping test due to BOOST_NO_CXX11_AUTO_DECLARATIONS")
int main() {}
#else
#include <boost/typeof/typeof.hpp>
#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
namespace detail {
template<class T> inline T& deref(T& r) {
return r;
}
template<class T>
struct wrapper {
typedef T type;
};
template<class T> wrapper<T> wrap(T&);
};
BOOST_TYPEOF_REGISTER_TEMPLATE(::detail::wrapper, 1)
void test_typeof_in_lambda() {
// Visual Studio 2015 (BOOST_MSVC == 1900) had an internal compiler error with Boost 1.65 and 1.66 when using BOOST_SCOPE_EXIT inside a lambda
// the error was due to a change of include in boost/typeof/typeof.hpp (<boost/typeof/decltype.hpp> instead of <boost/typeof/native.hpp>)
// This test is an more or less minimal extract from the BOOST_SCOPE_EXIT macro expansions
// worked also with VS 2015 in version 1.65/1.66
int n;
typedef BOOST_TYPEOF(::detail::wrap(::detail::deref(n))) n_type_wrapped;
typedef n_type_wrapped::type n_type;
int test;
auto check_property = [&n,&test]() {
// internal compiler error with VS 2015 in version 1.65/1.66
// minimal extract from
//BOOST_SCOPE_EXIT(test) {
// test = 42;
//}BOOST_SCOPE_EXIT_END
// this compiles always (as long as the one before outside the lambda has the same name)
typedef BOOST_TYPEOF(::detail::wrap(::detail::deref(n))) n_type_wrapped;
typedef n_type_wrapped::type n_type;
// this fails with internal compiler error with VS 2015 in version 1.65/1.66
typedef BOOST_TYPEOF(::detail::wrap(::detail::deref(test))) test_type_wrapped;
typedef test_type_wrapped::type test_type;
};
}
int main() {
test_typeof_in_lambda();
return 0;
}
#endif

0
test/noncopyable.cpp Executable file → Normal file
View File

0
test/odr.hpp Executable file → Normal file
View File

0
test/odr1.cpp Executable file → Normal file
View File

0
test/odr2.cpp Executable file → Normal file
View File

0
test/odr_no_uns1.cpp Executable file → Normal file
View File

0
test/odr_no_uns1.hpp Executable file → Normal file
View File

0
test/odr_no_uns2.cpp Executable file → Normal file
View File

0
test/odr_no_uns2.hpp Executable file → Normal file
View File

4
test/std.cpp Executable file → Normal file
View File

@ -42,8 +42,10 @@ BOOST_STATIC_ASSERT(boost::type_of::test<bitset<10> >::value);
// function objects
#ifndef BOOST_NO_CXX98_FUNCTION_BASE
BOOST_STATIC_ASSERT((boost::type_of::test<unary_function<int, int> >::value));
BOOST_STATIC_ASSERT((boost::type_of::test<binary_function<int, int, int> >::value));
#endif//BOOST_NO_CXX98_FUNCTION_BASE
BOOST_STATIC_ASSERT(boost::type_of::test<plus<int> >::value);
BOOST_STATIC_ASSERT(boost::type_of::test<minus<int> >::value);
BOOST_STATIC_ASSERT(boost::type_of::test<multiplies<int> >::value);
@ -61,8 +63,10 @@ BOOST_STATIC_ASSERT(boost::type_of::test<logical_or<int> >::value);
BOOST_STATIC_ASSERT(boost::type_of::test<logical_not<int> >::value);
BOOST_STATIC_ASSERT(boost::type_of::test<unary_negate<negate<int> > >::value);
BOOST_STATIC_ASSERT(boost::type_of::test<binary_negate<less<int> > >::value);
#ifndef BOOST_NO_CXX98_BINDERS
BOOST_STATIC_ASSERT(boost::type_of::test<binder1st<less<int> > >::value);
BOOST_STATIC_ASSERT(boost::type_of::test<binder2nd<less<int> > >::value);
#endif//BOOST_NO_CXX98_BINDERS
// valarray

0
test/template_dependent.cpp Executable file → Normal file
View File

0
test/template_enum.cpp Executable file → Normal file
View File

0
test/template_int.cpp Executable file → Normal file
View File

0
test/template_multiword.cpp Executable file → Normal file
View File

0
test/template_tpl.cpp Executable file → Normal file
View File

0
test/template_type.cpp Executable file → Normal file
View File

0
test/test.hpp Executable file → Normal file
View File

0
test/type.cpp Executable file → Normal file
View File