forked from boostorg/core
Compare commits
23 Commits
boost-1.61
...
boost-1.63
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a1ba85e5f6 | ||
|
|
399ef5207e | ||
|
|
01d5850952 | ||
|
|
ee8c2d3e46 | ||
|
|
0a50557410 | ||
|
|
8156259043 | ||
|
|
5263c5d47f | ||
|
|
29810a490a | ||
|
|
aa17d6a5e2 | ||
|
|
9df5059786 | ||
|
|
df2f358766 | ||
|
|
2128428ca1 | ||
|
|
b0b16d6ddb | ||
|
|
d732412924 | ||
|
|
9823a4135b | ||
|
|
05f6c1d642 | ||
|
|
0ad01c60a0 | ||
|
|
a7607030a9 | ||
|
|
94d3d3540f | ||
|
|
45a63809bf | ||
|
|
f55d2a5cf9 | ||
|
|
fd022e2d86 | ||
|
|
f1c51cb19c |
41
.travis.yml
Normal file
41
.travis.yml
Normal file
@@ -0,0 +1,41 @@
|
||||
# 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)
|
||||
|
||||
language: cpp
|
||||
|
||||
sudo: false
|
||||
|
||||
os:
|
||||
- linux
|
||||
- osx
|
||||
|
||||
branches:
|
||||
only:
|
||||
- master
|
||||
- develop
|
||||
|
||||
install:
|
||||
- cd ..
|
||||
- git clone -b $TRAVIS_BRANCH https://github.com/boostorg/boost.git boost-root
|
||||
- cd boost-root
|
||||
- git submodule init libs/assert
|
||||
- git submodule init libs/config
|
||||
- git submodule init libs/predef
|
||||
- git submodule init libs/static_assert
|
||||
- git submodule init libs/type_traits
|
||||
- git submodule init tools/build
|
||||
- git submodule init tools/inspect
|
||||
- git submodule update
|
||||
- cp -r $TRAVIS_BUILD_DIR/* libs/core
|
||||
- ./bootstrap.sh
|
||||
- ./b2 headers
|
||||
|
||||
script:
|
||||
- TOOLSET=gcc,clang
|
||||
- if [ $TRAVIS_OS_NAME == osx ]; then TOOLSET=clang; fi
|
||||
- ./b2 libs/core/test toolset=$TOOLSET
|
||||
|
||||
notifications:
|
||||
email:
|
||||
on_success: always
|
||||
@@ -8,6 +8,13 @@ The criteria for inclusion is that the utility component be:
|
||||
* used by other Boost libraries, and
|
||||
* not dependent on any other Boost modules except Core itself, Config, Assert, Static Assert, or Predef.
|
||||
|
||||
### CI Status
|
||||
|
||||
Branch | Travis | Appveyor
|
||||
---------|--------|---------
|
||||
Develop | [](https://travis-ci.org/boostorg/core) | [](https://ci.appveyor.com/project/pdimov/core)
|
||||
Master | [](https://travis-ci.org/boostorg/core) | [](https://ci.appveyor.com/project/pdimov/core)
|
||||
|
||||
### Directories
|
||||
|
||||
* **doc** - Documentation of the components
|
||||
|
||||
33
appveyor.yml
Normal file
33
appveyor.yml
Normal file
@@ -0,0 +1,33 @@
|
||||
# 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
|
||||
|
||||
install:
|
||||
- cd ..
|
||||
- git clone -b %APPVEYOR_REPO_BRANCH% https://github.com/boostorg/boost.git boost-root
|
||||
- cd boost-root
|
||||
- git submodule init libs/assert
|
||||
- git submodule init libs/config
|
||||
- git submodule init libs/predef
|
||||
- git submodule init libs/static_assert
|
||||
- git submodule init libs/type_traits
|
||||
- git submodule init tools/build
|
||||
- git submodule init tools/inspect
|
||||
- git submodule update
|
||||
- xcopy /s /e /q %APPVEYOR_BUILD_FOLDER% libs\core
|
||||
- bootstrap
|
||||
- b2 headers
|
||||
|
||||
build: off
|
||||
|
||||
test_script:
|
||||
- b2 libs/core/test toolset=msvc-9.0,msvc-10.0,msvc-11.0,msvc-14.0
|
||||
@@ -52,5 +52,8 @@ boostbook standalone
|
||||
<format>pdf:<xsl:param>boost.url.prefix=http://www.boost.org/doc/libs/release/libs/core/doc/html
|
||||
;
|
||||
|
||||
alias boostdoc : standalone
|
||||
: : : <implicit-dependency>standalone ;
|
||||
###############################################################################
|
||||
alias boostdoc ;
|
||||
explicit boostdoc ;
|
||||
alias boostrelease : standalone ;
|
||||
explicit boostrelease ;
|
||||
|
||||
@@ -32,6 +32,7 @@ When using `lightweight_test.hpp`, *do not forget* to
|
||||
|
||||
``
|
||||
#define BOOST_TEST(expression) /*unspecified*/
|
||||
#define BOOST_TEST_NOT(expression) /*unspecified*/
|
||||
#define BOOST_ERROR(message) /*unspecified*/
|
||||
#define BOOST_TEST_EQ(expr1, expr2) /*unspecified*/
|
||||
#define BOOST_TEST_NE(expr1, expr2) /*unspecified*/
|
||||
@@ -56,6 +57,17 @@ message containing `expression`.
|
||||
|
||||
[endsect]
|
||||
|
||||
[section BOOST_TEST_NOT]
|
||||
|
||||
``
|
||||
BOOST_TEST_NOT(expression)
|
||||
``
|
||||
|
||||
If expression is true increases the error count and outputs a
|
||||
message containing `!(expression)`.
|
||||
|
||||
[endsect]
|
||||
|
||||
[section BOOST_ERROR]
|
||||
|
||||
``
|
||||
|
||||
@@ -85,6 +85,22 @@ inline void throw_failed_impl(char const * excep, char const * file, int line, c
|
||||
++test_errors();
|
||||
}
|
||||
|
||||
// In the comparisons below, it is possible that T and U are signed and unsigned integer types, which generates warnings in some compilers.
|
||||
// A cleaner fix would require common_type trait or some meta-programming, which would introduce a dependency on Boost.TypeTraits. To avoid
|
||||
// the dependency we just disable the warnings.
|
||||
#if defined(_MSC_VER)
|
||||
# pragma warning(push)
|
||||
# pragma warning(disable: 4389)
|
||||
#elif defined(__clang__) && defined(__has_warning)
|
||||
# if __has_warning("-Wsign-compare")
|
||||
# pragma clang diagnostic push
|
||||
# pragma clang diagnostic ignored "-Wsign-compare"
|
||||
# endif
|
||||
#elif defined(__GNUC__) && !(defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC)) && (__GNUC__ * 100 + __GNUC_MINOR__) >= 406
|
||||
# pragma GCC diagnostic push
|
||||
# pragma GCC diagnostic ignored "-Wsign-compare"
|
||||
#endif
|
||||
|
||||
template<class T, class U> inline void test_eq_impl( char const * expr1, char const * expr2,
|
||||
char const * file, int line, char const * function, T const & t, U const & u )
|
||||
{
|
||||
@@ -119,6 +135,16 @@ template<class T, class U> inline void test_ne_impl( char const * expr1, char co
|
||||
}
|
||||
}
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
# pragma warning(pop)
|
||||
#elif defined(__clang__) && defined(__has_warning)
|
||||
# if __has_warning("-Wsign-compare")
|
||||
# pragma clang diagnostic pop
|
||||
# endif
|
||||
#elif defined(__GNUC__) && !(defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC)) && (__GNUC__ * 100 + __GNUC_MINOR__) >= 406
|
||||
# pragma GCC diagnostic pop
|
||||
#endif
|
||||
|
||||
} // namespace detail
|
||||
|
||||
inline int report_errors()
|
||||
@@ -144,6 +170,7 @@ inline int report_errors()
|
||||
} // namespace boost
|
||||
|
||||
#define BOOST_TEST(expr) ((expr)? (void)0: ::boost::detail::test_failed_impl(#expr, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION))
|
||||
#define BOOST_TEST_NOT(expr) BOOST_TEST(!(expr))
|
||||
|
||||
#define BOOST_ERROR(msg) ( ::boost::detail::error_impl(msg, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION) )
|
||||
|
||||
|
||||
@@ -9,6 +9,9 @@
|
||||
// This header is obsolete and will be deprecated.
|
||||
|
||||
#include <iterator>
|
||||
#if defined(__SUNPRO_CC) && (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION))
|
||||
#include <cstddef>
|
||||
#endif
|
||||
|
||||
namespace boost
|
||||
{
|
||||
@@ -19,6 +22,16 @@ namespace detail
|
||||
using std::iterator_traits;
|
||||
using std::distance;
|
||||
|
||||
#if defined(__SUNPRO_CC) && (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION))
|
||||
// std::distance from stlport with Oracle compiler 12.4 and 12.5 fails to deduce template parameters
|
||||
// when one of the arguments is an array and the other one is a pointer.
|
||||
template< typename T, std::size_t N >
|
||||
inline typename std::iterator_traits< T* >::difference_type distance(T (&left)[N], T* right)
|
||||
{
|
||||
return std::distance(static_cast< T* >(left), right);
|
||||
}
|
||||
#endif
|
||||
|
||||
} // namespace detail
|
||||
|
||||
} // namespace boost
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
# See accompanying file LICENSE_1_0.txt or copy at
|
||||
# http://www.boost.org/LICENSE_1_0.txt
|
||||
|
||||
import modules ;
|
||||
import testing ;
|
||||
|
||||
run addressof_test.cpp ;
|
||||
@@ -92,3 +93,6 @@ compile-fail scoped_enum_compile_fail_conv_from_int.cpp ;
|
||||
compile-fail scoped_enum_compile_fail_conv_to_int.cpp ;
|
||||
|
||||
run underlying_type.cpp ;
|
||||
|
||||
use-project /boost/core/swap : ./swap ;
|
||||
build-project ./swap ;
|
||||
|
||||
@@ -10,16 +10,19 @@
|
||||
// Jeremiah Willcock (jewillco at osl.iu.edu)
|
||||
// Andrew Lumsdaine (lums at osl.iu.edu)
|
||||
|
||||
#include <boost/mpl/not.hpp>
|
||||
|
||||
#include <boost/config.hpp>
|
||||
#include <boost/utility/enable_if.hpp>
|
||||
#include <boost/type_traits/is_arithmetic.hpp>
|
||||
#include <boost/detail/lightweight_test.hpp>
|
||||
|
||||
using boost::enable_if;
|
||||
using boost::mpl::not_;
|
||||
using boost::is_arithmetic;
|
||||
|
||||
template<class T> struct not_
|
||||
{
|
||||
BOOST_STATIC_CONSTANT( bool, value = !T::value );
|
||||
};
|
||||
|
||||
namespace A {
|
||||
template<class T>
|
||||
typename enable_if<is_arithmetic<T>, bool>::type
|
||||
|
||||
@@ -10,16 +10,19 @@
|
||||
// Jeremiah Willcock (jewillco at osl.iu.edu)
|
||||
// Andrew Lumsdaine (lums at osl.iu.edu)
|
||||
|
||||
#include <boost/mpl/not.hpp>
|
||||
|
||||
#include <boost/config.hpp>
|
||||
#include <boost/utility/enable_if.hpp>
|
||||
#include <boost/type_traits/is_arithmetic.hpp>
|
||||
#include <boost/detail/lightweight_test.hpp>
|
||||
|
||||
using boost::mpl::not_;
|
||||
using boost::enable_if;
|
||||
using boost::is_arithmetic;
|
||||
|
||||
template<class T> struct not_
|
||||
{
|
||||
BOOST_STATIC_CONSTANT( bool, value = !T::value );
|
||||
};
|
||||
|
||||
template<class T>
|
||||
typename enable_if<is_arithmetic<T>, bool>::type
|
||||
arithmetic_object(T t) { return true; }
|
||||
|
||||
@@ -35,6 +35,7 @@ int main(int, char*[])
|
||||
{
|
||||
checkable val;
|
||||
int n = val;
|
||||
(void)n;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -35,6 +35,7 @@ int main(int, char*[])
|
||||
{
|
||||
checkable val;
|
||||
void* p = val;
|
||||
(void)p;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -27,10 +27,12 @@ int main()
|
||||
delete p;
|
||||
}
|
||||
|
||||
#if !defined( BOOST_NO_AUTO_PTR )
|
||||
{
|
||||
std::auto_ptr< X > p( new X );
|
||||
BOOST_TEST( get_pointer( p ) == p.get() );
|
||||
}
|
||||
#endif
|
||||
|
||||
#if !defined( BOOST_NO_CXX11_SMART_PTR )
|
||||
|
||||
|
||||
@@ -43,6 +43,16 @@ int main()
|
||||
BOOST_TEST( x++ == 1 );
|
||||
BOOST_TEST( x == 2? true: false );
|
||||
BOOST_TEST( x == 2? &x: 0 );
|
||||
|
||||
// BOOST_TEST_NOT
|
||||
|
||||
BOOST_TEST_NOT( x == 1 );
|
||||
BOOST_TEST_NOT( ++x == 2 );
|
||||
BOOST_TEST_NOT( x++ == 2 );
|
||||
BOOST_TEST_NOT( --x == 2 );
|
||||
BOOST_TEST_NOT( x-- == 2 );
|
||||
BOOST_TEST_NOT( x == 2? false: true );
|
||||
BOOST_TEST_NOT( x == 2? 0: &x );
|
||||
|
||||
// BOOST_TEST_EQ
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
int main()
|
||||
{
|
||||
boost::reference_wrapper<int const> r( 1 ); // this should produce an ERROR
|
||||
(void)r;
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
@@ -13,4 +13,5 @@
|
||||
int main()
|
||||
{
|
||||
boost::reference_wrapper<int> r = boost::ref( 2 ); // this should produce an ERROR
|
||||
(void)r;
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ X const crv() { return X(); }
|
||||
int main()
|
||||
{
|
||||
boost::reference_wrapper<X const> r = boost::ref( crv() ); // this should produce an ERROR
|
||||
(void)r;
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
int main()
|
||||
{
|
||||
boost::reference_wrapper<int const> r = boost::cref( 2 ); // should fail
|
||||
(void)r;
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
@@ -20,6 +20,7 @@ X const crv() { return X(); }
|
||||
int main()
|
||||
{
|
||||
boost::reference_wrapper<X const> r = boost::cref( crv() ); // must fail
|
||||
(void)r;
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
Reference in New Issue
Block a user