forked from boostorg/array
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| ed7eb32612 |
-217
@@ -1,217 +0,0 @@
|
||||
# Copyright 2016, 2017 Peter Dimov
|
||||
# Copyright 2018, Mike-Dev
|
||||
# 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)
|
||||
|
||||
language: cpp
|
||||
|
||||
sudo: false
|
||||
|
||||
python: "2.7"
|
||||
|
||||
branches:
|
||||
only:
|
||||
- master
|
||||
- develop
|
||||
- /feature\/.*/
|
||||
|
||||
env:
|
||||
matrix:
|
||||
- BOGUS_JOB=true
|
||||
|
||||
matrix:
|
||||
|
||||
exclude:
|
||||
- env: BOGUS_JOB=true
|
||||
|
||||
include:
|
||||
|
||||
# cmake self-test
|
||||
- os: linux
|
||||
env: TEST_CMAKE=TRUE #Only for easier identification in travis web gui
|
||||
install:
|
||||
- BOOST_BRANCH=develop && [ "$TRAVIS_BRANCH" == "master" ] && BOOST_BRANCH=master || true
|
||||
- git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/assert.git ../assert
|
||||
- git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/config.git ../config
|
||||
- git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/core.git ../core
|
||||
- git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/static_assert.git ../static_assert
|
||||
- git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/throw_exception.git ../throw_exception
|
||||
|
||||
script:
|
||||
- mkdir __build__ && cd __build__
|
||||
- cmake ../test/test_cmake
|
||||
- cmake --build .
|
||||
|
||||
- os: linux
|
||||
compiler: g++
|
||||
env: TOOLSET=gcc COMPILER=g++ CXXSTD=03,11
|
||||
|
||||
- os: linux
|
||||
compiler: g++-4.7
|
||||
env: TOOLSET=gcc COMPILER=g++-4.7 CXXSTD=03,11
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- g++-4.7
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
|
||||
- os: linux
|
||||
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
|
||||
compiler: g++-4.9
|
||||
env: TOOLSET=gcc COMPILER=g++-4.9 CXXSTD=03,11
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- g++-4.9
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
|
||||
- os: linux
|
||||
compiler: g++-5
|
||||
env: TOOLSET=gcc COMPILER=g++-5 CXXSTD=03,11,14,1z
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- g++-5
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
|
||||
- os: linux
|
||||
compiler: g++-6
|
||||
env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=03,11,14,1z
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- g++-6
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
|
||||
- os: linux
|
||||
dist: trusty
|
||||
compiler: g++-7
|
||||
env: TOOLSET=gcc COMPILER=g++-7 CXXSTD=03,11,14,17
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- g++-7
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
|
||||
- os: linux
|
||||
compiler: clang++
|
||||
env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11
|
||||
|
||||
- os: linux
|
||||
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
|
||||
compiler: clang++-3.6
|
||||
env: TOOLSET=clang COMPILER=clang++-3.6 CXXSTD=03,11,14,1z
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- clang-3.6
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
- llvm-toolchain-precise-3.6
|
||||
|
||||
- os: linux
|
||||
compiler: clang++-3.7
|
||||
env: TOOLSET=clang COMPILER=clang++-3.7 CXXSTD=03,11,14,1z
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- clang-3.7
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
- llvm-toolchain-precise-3.7
|
||||
|
||||
- os: linux
|
||||
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
|
||||
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
|
||||
compiler: clang++-4.0
|
||||
env: TOOLSET=clang COMPILER=clang++-4.0 CXXSTD=03,11,14,1z
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- clang-4.0
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
- llvm-toolchain-trusty-4.0
|
||||
|
||||
- os: linux
|
||||
compiler: clang++-5.0
|
||||
env: TOOLSET=clang COMPILER=clang++-5.0 CXXSTD=03,11,14,1z
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- clang-5.0
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
- llvm-toolchain-trusty-5.0
|
||||
|
||||
- os: osx
|
||||
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 $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
|
||||
- git submodule update --init tools/boostdep
|
||||
- cp -r $TRAVIS_BUILD_DIR/* libs/array
|
||||
- python tools/boostdep/depinst/depinst.py array
|
||||
- ./bootstrap.sh
|
||||
- ./b2 headers
|
||||
|
||||
script:
|
||||
- |-
|
||||
echo "using $TOOLSET : : $COMPILER ;" > ~/user-config.jam
|
||||
- ./b2 -j 3 libs/array/test toolset=$TOOLSET cxxstd=$CXXSTD
|
||||
|
||||
notifications:
|
||||
email:
|
||||
on_success: always
|
||||
@@ -1,24 +0,0 @@
|
||||
# Copyright 2018 Mike Dev
|
||||
# Distributed under the Boost Software License, Version 1.0.
|
||||
# See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt
|
||||
|
||||
# NOTE: CMake support for Boost.Array is currently experimental at best
|
||||
# and the interface is likely to change in the future
|
||||
|
||||
cmake_minimum_required(VERSION 3.5)
|
||||
project(boost-array LANGUAGES CXX)
|
||||
|
||||
add_library(boost_array INTERFACE)
|
||||
add_library(Boost::array ALIAS boost_array)
|
||||
|
||||
target_include_directories(boost_array INTERFACE include)
|
||||
|
||||
target_link_libraries(boost_array
|
||||
INTERFACE
|
||||
Boost::assert
|
||||
Boost::config
|
||||
Boost::core
|
||||
Boost::static_assert
|
||||
Boost::throw_exception
|
||||
)
|
||||
|
||||
@@ -1,19 +1,5 @@
|
||||
#~ Copyright Marshall Clow 2013
|
||||
#~ Distributed under the Boost Software License, Version 1.0.
|
||||
#~ (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
using boostbook ;
|
||||
|
||||
boostbook standalone
|
||||
: array.xml
|
||||
: <xsl:param>boost.root=../../../.. ;
|
||||
|
||||
###############################################################################
|
||||
alias boostdoc
|
||||
: array.xml
|
||||
:
|
||||
:
|
||||
: ;
|
||||
explicit boostdoc ;
|
||||
alias boostrelease ;
|
||||
explicit boostrelease ;
|
||||
|
||||
+1
-1
@@ -77,7 +77,7 @@
|
||||
|
||||
<para>Note that this class is suggested to be part of the next
|
||||
Technical Report, which will extend the C++ Standard (see
|
||||
<ulink url="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2003/n1548.htm">http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2003/n1548.htm</ulink>).</para>
|
||||
<ulink url="http://std.dkuug.dk/jtc1/sc22/wg21/docs/papers/2003/n1548.htm">http://std.dkuug.dk/jtc1/sc22/wg21/docs/papers/2003/n1548.htm</ulink>).</para>
|
||||
|
||||
<para>Update: <code>std::array</code> is (as of C++11) part of the C++ standard.
|
||||
The differences between <code>boost::array</code> and <code>std::array</code> are minimal.
|
||||
|
||||
+19
-5
@@ -49,6 +49,7 @@
|
||||
// Handles broken standard libraries better than <iterator>
|
||||
#include <boost/detail/iterator.hpp>
|
||||
#include <boost/throw_exception.hpp>
|
||||
#include <boost/functional/hash_fwd.hpp>
|
||||
#include <algorithm>
|
||||
|
||||
// FIXES for broken compilers
|
||||
@@ -82,9 +83,15 @@ namespace boost {
|
||||
const_iterator cend() const { return elems+N; }
|
||||
|
||||
// reverse iterator support
|
||||
#if !defined(BOOST_MSVC_STD_ITERATOR) && !defined(BOOST_NO_STD_ITERATOR_TRAITS)
|
||||
#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_MSVC_STD_ITERATOR) && !defined(BOOST_NO_STD_ITERATOR_TRAITS)
|
||||
typedef std::reverse_iterator<iterator> reverse_iterator;
|
||||
typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
|
||||
#elif defined(_MSC_VER) && (_MSC_VER == 1300) && defined(BOOST_DINKUMWARE_STDLIB) && (BOOST_DINKUMWARE_STDLIB == 310)
|
||||
// workaround for broken reverse_iterator in VC7
|
||||
typedef std::reverse_iterator<std::_Ptrit<value_type, difference_type, iterator,
|
||||
reference, iterator, reference> > reverse_iterator;
|
||||
typedef std::reverse_iterator<std::_Ptrit<value_type, difference_type, const_iterator,
|
||||
const_reference, iterator, reference> > const_reverse_iterator;
|
||||
#elif defined(_RWSTD_NO_CLASS_PARTIAL_SPEC)
|
||||
typedef std::reverse_iterator<iterator, std::random_access_iterator_tag,
|
||||
value_type, reference, iterator, difference_type> reverse_iterator;
|
||||
@@ -183,11 +190,12 @@ namespace boost {
|
||||
|
||||
// check range (may be private because it is static)
|
||||
static BOOST_CONSTEXPR bool rangecheck (size_type i) {
|
||||
return i >= size() ? boost::throw_exception(std::out_of_range ("array<>: index out of range")), true : true;
|
||||
return i > size() ? boost::throw_exception(std::out_of_range ("array<>: index out of range")), true : true;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
|
||||
template< class T >
|
||||
class array< T, 0 > {
|
||||
|
||||
@@ -211,9 +219,15 @@ namespace boost {
|
||||
const_iterator cend() const { return cbegin(); }
|
||||
|
||||
// reverse iterator support
|
||||
#if !defined(BOOST_MSVC_STD_ITERATOR) && !defined(BOOST_NO_STD_ITERATOR_TRAITS)
|
||||
#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_MSVC_STD_ITERATOR) && !defined(BOOST_NO_STD_ITERATOR_TRAITS)
|
||||
typedef std::reverse_iterator<iterator> reverse_iterator;
|
||||
typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
|
||||
#elif defined(_MSC_VER) && (_MSC_VER == 1300) && defined(BOOST_DINKUMWARE_STDLIB) && (BOOST_DINKUMWARE_STDLIB == 310)
|
||||
// workaround for broken reverse_iterator in VC7
|
||||
typedef std::reverse_iterator<std::_Ptrit<value_type, difference_type, iterator,
|
||||
reference, iterator, reference> > reverse_iterator;
|
||||
typedef std::reverse_iterator<std::_Ptrit<value_type, difference_type, const_iterator,
|
||||
const_reference, iterator, reference> > const_reverse_iterator;
|
||||
#elif defined(_RWSTD_NO_CLASS_PARTIAL_SPEC)
|
||||
typedef std::reverse_iterator<iterator, std::random_access_iterator_tag,
|
||||
value_type, reference, iterator, difference_type> reverse_iterator;
|
||||
@@ -318,6 +332,7 @@ namespace boost {
|
||||
#endif
|
||||
}
|
||||
};
|
||||
#endif
|
||||
|
||||
// comparisons
|
||||
template<class T, std::size_t N>
|
||||
@@ -373,7 +388,7 @@ namespace boost {
|
||||
|
||||
// Specific for boost::array: simply returns its elems data member.
|
||||
template <typename T, std::size_t N>
|
||||
typename detail::c_array<T,N>::type const& get_c_array(const boost::array<T,N>& arg)
|
||||
typename const detail::c_array<T,N>::type& get_c_array(const boost::array<T,N>& arg)
|
||||
{
|
||||
return arg.elems;
|
||||
}
|
||||
@@ -411,7 +426,6 @@ namespace boost {
|
||||
}
|
||||
#endif
|
||||
|
||||
template <class It> std::size_t hash_range(It, It);
|
||||
|
||||
template<class T, std::size_t N>
|
||||
std::size_t hash_value(const array<T,N>& arr)
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
{
|
||||
"key": "array",
|
||||
"name": "Array",
|
||||
"authors": [
|
||||
"Nicolai Josuttis"
|
||||
],
|
||||
"description": "STL compliant container wrapper for arrays of constant size.",
|
||||
"std": [
|
||||
"tr1"
|
||||
],
|
||||
"category": [
|
||||
"Containers"
|
||||
],
|
||||
"maintainers": [
|
||||
"Marshall Clow <marshall -at- idio.com>"
|
||||
]
|
||||
}
|
||||
+12
-5
@@ -2,17 +2,24 @@
|
||||
#~ Distributed under the Boost Software License, Version 1.0.
|
||||
#~ (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
import testing ;
|
||||
|
||||
alias unit_test_framework
|
||||
: # sources
|
||||
/boost//unit_test_framework
|
||||
;
|
||||
|
||||
test-suite array :
|
||||
[ run array0.cpp ]
|
||||
[ run array0.cpp unit_test_framework : : : : array0 ]
|
||||
[ run array1.cpp ]
|
||||
[ run array2.cpp ]
|
||||
[ run array3.cpp ]
|
||||
[ run array4.cpp ]
|
||||
[ run array5.cpp ]
|
||||
[ run array6.cpp ]
|
||||
[ run array7.cpp ]
|
||||
# [ run array_constexpr.cpp ]
|
||||
[ run array6.cpp unit_test_framework : : : : array6 ]
|
||||
[ run array7.cpp unit_test_framework : : : : array7 ]
|
||||
# [ run array_constexpr.cpp unit_test_framework : : : : array_constexpr ]
|
||||
[ compile-fail array_getfail1.cpp ]
|
||||
[ compile-fail array_getfail2.cpp ]
|
||||
[ run array_hash.cpp ]
|
||||
[ run array_hash.cpp unit_test_framework : : : : array_hash ]
|
||||
;
|
||||
|
||||
+14
-14
@@ -9,14 +9,15 @@
|
||||
#include <iostream>
|
||||
#include <boost/array.hpp>
|
||||
|
||||
#include <boost/core/lightweight_test_trait.hpp>
|
||||
#define BOOST_TEST_MAIN
|
||||
#include <boost/test/unit_test.hpp>
|
||||
|
||||
namespace {
|
||||
|
||||
template< class T >
|
||||
void BadValue( const T & )
|
||||
{
|
||||
BOOST_TEST ( false );
|
||||
BOOST_CHECK ( false );
|
||||
}
|
||||
|
||||
template< class T >
|
||||
@@ -32,19 +33,19 @@ void RunTests()
|
||||
|
||||
// front/back and operator[] must compile, but calling them is undefined
|
||||
// Likewise, all tests below should evaluate to false, avoiding undefined behaviour
|
||||
BOOST_TEST ( test_case.empty());
|
||||
BOOST_TEST ( const_test_case.empty());
|
||||
BOOST_CHECK ( test_case.empty());
|
||||
BOOST_CHECK ( const_test_case.empty());
|
||||
|
||||
BOOST_TEST ( test_case.size() == 0 );
|
||||
BOOST_TEST ( const_test_case.size() == 0 );
|
||||
BOOST_CHECK ( test_case.size() == 0 );
|
||||
BOOST_CHECK ( const_test_case.size() == 0 );
|
||||
|
||||
// Assert requirements of TR1 6.2.2.4
|
||||
BOOST_TEST ( test_case.begin() == test_case.end());
|
||||
BOOST_TEST ( test_case.cbegin() == test_case.cend());
|
||||
BOOST_TEST ( const_test_case.begin() == const_test_case.end());
|
||||
BOOST_TEST ( const_test_case.cbegin() == const_test_case.cend());
|
||||
BOOST_CHECK ( test_case.begin() == test_case.end());
|
||||
BOOST_CHECK ( test_case.cbegin() == test_case.cend());
|
||||
BOOST_CHECK ( const_test_case.begin() == const_test_case.end());
|
||||
BOOST_CHECK ( const_test_case.cbegin() == const_test_case.cend());
|
||||
|
||||
BOOST_TEST ( test_case.begin() != const_test_case.begin() );
|
||||
BOOST_CHECK ( test_case.begin() != const_test_case.begin() );
|
||||
if( test_case.data() == const_test_case.data() ) {
|
||||
// Value of data is unspecified in TR1, so no requirement this test pass or fail
|
||||
// However, it must compile!
|
||||
@@ -78,12 +79,11 @@ void RunTests()
|
||||
|
||||
}
|
||||
|
||||
int main()
|
||||
BOOST_AUTO_TEST_CASE( test_main )
|
||||
{
|
||||
RunTests< bool >();
|
||||
RunTests< void * >();
|
||||
RunTests< long double >();
|
||||
RunTests< std::string >();
|
||||
|
||||
return boost::report_errors();
|
||||
}
|
||||
|
||||
|
||||
+5
-25
@@ -10,7 +10,8 @@
|
||||
#include <boost/array.hpp>
|
||||
#include <algorithm>
|
||||
|
||||
#include <boost/core/lightweight_test_trait.hpp>
|
||||
#define BOOST_TEST_MAIN
|
||||
#include <boost/test/unit_test.hpp>
|
||||
|
||||
namespace {
|
||||
template< class T >
|
||||
@@ -21,40 +22,19 @@ namespace {
|
||||
test_type test_case; // = { 1, 1, 2, 3, 5 };
|
||||
|
||||
arr &aRef = get_c_array ( test_case );
|
||||
BOOST_TEST ( &*test_case.begin () == &aRef[0] );
|
||||
BOOST_CHECK ( &*test_case.begin () == &aRef[0] );
|
||||
|
||||
const arr &caRef = get_c_array ( test_case );
|
||||
typename test_type::const_iterator iter = test_case.begin ();
|
||||
BOOST_TEST ( &*iter == &caRef[0] );
|
||||
|
||||
// Confirm at() throws the std lib defined exception
|
||||
try {
|
||||
test_case.at( test_case.size());
|
||||
BOOST_TEST(false);
|
||||
}
|
||||
catch ( const std::out_of_range & ) {}
|
||||
|
||||
try {
|
||||
test_case.at( test_case.size() + 1);
|
||||
BOOST_TEST(false);
|
||||
}
|
||||
catch ( const std::out_of_range & ) {}
|
||||
|
||||
try {
|
||||
test_case.at( test_case.size() + 100);
|
||||
BOOST_TEST(false);
|
||||
}
|
||||
catch ( const std::out_of_range & ) {}
|
||||
BOOST_CHECK ( &*iter == &caRef[0] );
|
||||
}
|
||||
}
|
||||
|
||||
int main ()
|
||||
BOOST_AUTO_TEST_CASE( test_main )
|
||||
{
|
||||
RunTests< bool >();
|
||||
RunTests< void * >();
|
||||
RunTests< long double >();
|
||||
RunTests< std::string >();
|
||||
|
||||
return boost::report_errors();
|
||||
}
|
||||
|
||||
|
||||
+9
-8
@@ -13,7 +13,8 @@
|
||||
#include <array>
|
||||
#endif
|
||||
|
||||
#include <boost/core/lightweight_test_trait.hpp>
|
||||
#define BOOST_TEST_MAIN
|
||||
#include <boost/test/unit_test.hpp>
|
||||
|
||||
namespace {
|
||||
|
||||
@@ -22,13 +23,14 @@ namespace {
|
||||
void RunStdTests()
|
||||
{
|
||||
typedef boost::array< T, 5 > test_type;
|
||||
typedef T arr[5];
|
||||
test_type test_case; // = { 1, 1, 2, 3, 5 };
|
||||
|
||||
T &aRef = std::get<0> ( test_case );
|
||||
BOOST_TEST ( &*test_case.begin () == &aRef );
|
||||
BOOST_CHECK ( &*test_case.begin () == &aRef );
|
||||
|
||||
const T &caRef = std::get<0> ( test_case );
|
||||
BOOST_TEST ( &*test_case.cbegin () == &caRef );
|
||||
BOOST_CHECK ( &*test_case.cbegin () == &caRef );
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -36,18 +38,19 @@ namespace {
|
||||
void RunBoostTests()
|
||||
{
|
||||
typedef boost::array< T, 5 > test_type;
|
||||
typedef T arr[5];
|
||||
test_type test_case; // = { 1, 1, 2, 3, 5 };
|
||||
|
||||
T &aRef = boost::get<0> ( test_case );
|
||||
BOOST_TEST ( &*test_case.begin () == &aRef );
|
||||
BOOST_CHECK ( &*test_case.begin () == &aRef );
|
||||
|
||||
const T &caRef = boost::get<0> ( test_case );
|
||||
BOOST_TEST ( &*test_case.cbegin () == &caRef );
|
||||
BOOST_CHECK ( &*test_case.cbegin () == &caRef );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
int main()
|
||||
BOOST_AUTO_TEST_CASE( test_main )
|
||||
{
|
||||
RunBoostTests< bool >();
|
||||
RunBoostTests< void * >();
|
||||
@@ -60,7 +63,5 @@ int main()
|
||||
RunStdTests< long double >();
|
||||
RunStdTests< std::string >();
|
||||
#endif
|
||||
|
||||
return boost::report_errors();
|
||||
}
|
||||
|
||||
|
||||
@@ -13,6 +13,9 @@
|
||||
#include <array>
|
||||
#endif
|
||||
|
||||
#define BOOST_TEST_MAIN
|
||||
#include <boost/test/unit_test.hpp>
|
||||
|
||||
#ifndef BOOST_NO_CXX11_CONSTEXPR
|
||||
constexpr boost::array<int, 10> arr {{ 0,1,2,3,4,5,6,7,8,9 }};
|
||||
constexpr std::array<int, 10> arr_std {{ 0,1,2,3,4,5,6,7,8,9 }};
|
||||
@@ -23,17 +26,18 @@ void sink ( T t ) {}
|
||||
template <typename T, size_t N>
|
||||
void sink ( boost::array<T,N> &arr ) {}
|
||||
|
||||
int main()
|
||||
BOOST_AUTO_TEST_CASE( test_main )
|
||||
{
|
||||
// constexpr int two = arr_std.at (2);
|
||||
constexpr int three = arr.at (3);
|
||||
int whatever [ arr.at(4) ];
|
||||
(void)three;
|
||||
(void) whatever;
|
||||
(void) whatever;
|
||||
}
|
||||
|
||||
#else // no constexpr means no constexpr tests!
|
||||
int main()
|
||||
#else // no constexpr means no constexpr tests!
|
||||
BOOST_AUTO_TEST_CASE( test_main )
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
@@ -16,7 +16,8 @@
|
||||
#include <array>
|
||||
#endif
|
||||
|
||||
#include <boost/core/lightweight_test_trait.hpp>
|
||||
#define BOOST_TEST_MAIN
|
||||
#include <boost/test/unit_test.hpp>
|
||||
|
||||
namespace {
|
||||
|
||||
@@ -28,14 +29,14 @@ namespace {
|
||||
typedef T arr[5];
|
||||
test_type test_case; // = { 1, 1, 2, 3, 5 };
|
||||
|
||||
T &aRef = std::get<5> ( test_case ); // should fail to compile
|
||||
BOOST_TEST ( &*test_case.begin () == &aRef );
|
||||
T &aRef = std::get<5> ( test_case ); // should fail to compile
|
||||
BOOST_CHECK ( &*test_case.begin () == &aRef );
|
||||
}
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
int main()
|
||||
BOOST_AUTO_TEST_CASE( test_main )
|
||||
{
|
||||
#ifndef BOOST_NO_CXX11_HDR_ARRAY
|
||||
RunStdTests< bool >();
|
||||
@@ -43,8 +44,7 @@ int main()
|
||||
RunStdTests< long double >();
|
||||
RunStdTests< std::string >();
|
||||
#else
|
||||
BOOST_STATIC_ASSERT ( false ); // fail on C++03 systems.
|
||||
BOOST_STATIC_ASSERT ( false ); // fail on C++03 systems.
|
||||
#endif
|
||||
|
||||
return boost::report_errors();
|
||||
}
|
||||
|
||||
|
||||
@@ -13,7 +13,8 @@
|
||||
#include <array>
|
||||
#endif
|
||||
|
||||
#include <boost/core/lightweight_test_trait.hpp>
|
||||
#define BOOST_TEST_MAIN
|
||||
#include <boost/test/unit_test.hpp>
|
||||
|
||||
namespace {
|
||||
|
||||
@@ -26,10 +27,10 @@ namespace {
|
||||
test_type test_case; // = { 1, 1, 2, 3, 5 };
|
||||
|
||||
T &aRef = std::get<0> ( test_case );
|
||||
BOOST_TEST ( &*test_case.begin () == &aRef );
|
||||
BOOST_CHECK ( &*test_case.begin () == &aRef );
|
||||
|
||||
const T &caRef = std::get<0> ( test_case );
|
||||
BOOST_TEST ( &*test_case.cbegin () == &caRef );
|
||||
BOOST_CHECK ( &*test_case.cbegin () == &caRef );
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -41,12 +42,12 @@ namespace {
|
||||
test_type test_case; // = { 1, 1, 2, 3, 5 };
|
||||
|
||||
T &aRef = boost::get<5> ( test_case );
|
||||
BOOST_TEST ( &*test_case.begin () == &aRef );
|
||||
BOOST_CHECK ( &*test_case.begin () == &aRef );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
int main()
|
||||
BOOST_AUTO_TEST_CASE( test_main )
|
||||
{
|
||||
RunBoostTests< bool >();
|
||||
RunBoostTests< void * >();
|
||||
@@ -59,7 +60,5 @@ int main()
|
||||
RunStdTests< long double >();
|
||||
RunStdTests< std::string >();
|
||||
#endif
|
||||
|
||||
return boost::report_errors();
|
||||
}
|
||||
|
||||
|
||||
+4
-5
@@ -11,7 +11,8 @@
|
||||
#include <algorithm>
|
||||
#include <boost/functional/hash.hpp>
|
||||
|
||||
#include <boost/core/lightweight_test_trait.hpp>
|
||||
#define BOOST_TEST_MAIN
|
||||
#include <boost/test/unit_test.hpp>
|
||||
|
||||
namespace {
|
||||
|
||||
@@ -28,17 +29,15 @@ namespace {
|
||||
|
||||
std::size_t bhash = boost::hash<barr> () ( test_barr );
|
||||
std::size_t ahash = boost::hash<arr> () ( test_arr );
|
||||
BOOST_TEST ( ahash == bhash );
|
||||
BOOST_CHECK ( ahash == bhash );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
int main()
|
||||
BOOST_AUTO_TEST_CASE( test_main )
|
||||
{
|
||||
RunTests< int >();
|
||||
RunTests< long >();
|
||||
RunTests< long double >();
|
||||
|
||||
return boost::report_errors();
|
||||
}
|
||||
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
# Copyright 2018 Mike Dev
|
||||
# Distributed under the Boost Software License, Version 1.0.
|
||||
# See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt
|
||||
#
|
||||
# NOTE: This does NOT run the unit tests for Boost.Array.
|
||||
# It only tests, if the CMakeLists.txt file in it's root works as expected
|
||||
|
||||
cmake_minimum_required( VERSION 3.5 )
|
||||
|
||||
project( BoostBindCMakeSelfTest )
|
||||
|
||||
add_subdirectory( ../../../assert ${CMAKE_CURRENT_BINARY_DIR}/libs/assert )
|
||||
add_subdirectory( ../../../config ${CMAKE_CURRENT_BINARY_DIR}/libs/config )
|
||||
add_subdirectory( ../../../core ${CMAKE_CURRENT_BINARY_DIR}/libs/core )
|
||||
add_subdirectory( ../../../static_assert ${CMAKE_CURRENT_BINARY_DIR}/libs/static_assert )
|
||||
add_subdirectory( ../../../throw_exception ${CMAKE_CURRENT_BINARY_DIR}/libs/thorw_exception )
|
||||
|
||||
add_subdirectory( ../.. ${CMAKE_CURRENT_BINARY_DIR}/libs/boost_array )
|
||||
|
||||
add_executable( boost_array_cmake_self_test main.cpp )
|
||||
target_link_libraries( boost_array_cmake_self_test Boost::array )
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
#include <boost/array.hpp>
|
||||
|
||||
int main() {
|
||||
boost::array<int,5> a{};
|
||||
}
|
||||
Reference in New Issue
Block a user