Compare commits

..

9 Commits

Author SHA1 Message Date
Peter Dimov 8220aa5700 Include and test system_error.hpp in test/quick.cpp 2020-06-17 01:21:42 +03:00
Peter Dimov f00c76a3fc Include and test system_error.hpp in warnings_test 2020-06-17 01:13:16 +03:00
Peter Dimov 73bf30ae04 Enable -Wsuggest-override in warnings_test; add BOOST_OVERRIDE appropriately 2020-06-17 01:06:40 +03:00
Peter Dimov 63ac7fb9bc Use <warnings>pedantic for warnings_test 2020-06-17 00:45:29 +03:00
Peter Dimov feb545a919 Add gcc 10, clang 10, freebsd to Travis 2020-06-16 21:26:17 +03:00
Peter Dimov 00b30343b9 Asciidoctor 2 fixes 2020-06-16 21:01:38 +03:00
Peter Dimov c91dbc8249 Update footer for Asciidoctor 2 2020-06-16 20:44:31 +03:00
Peter Dimov 00d85d8d37 Update revision history 2020-06-16 20:44:09 +03:00
Peter Dimov 5d3365717e Revert "Revert operator bool() to its pre-failed value() != 0 meaning"
This reverts commit 3164b387a5.
2020-06-16 20:24:23 +03:00
11 changed files with 99 additions and 37 deletions
+34 -4
View File
@@ -127,6 +127,17 @@ matrix:
sources:
- ubuntu-toolchain-r-test
- os: linux
dist: bionic
compiler: g++-10
env: TOOLSET=gcc COMPILER=g++-10 CXXSTD=03,11,14,17,2a
addons:
apt:
packages:
- g++-10
sources:
- ubuntu-toolchain-r-test
- os: linux
compiler: g++-9
env: UBSAN=1 TOOLSET=gcc COMPILER=g++-9 CXXSTD=03,11,14,17,2a UBSAN_OPTIONS=print_stacktrace=1 LINKFLAGS=-fuse-ld=gold
@@ -275,15 +286,30 @@ matrix:
key_url: 'https://apt.llvm.org/llvm-snapshot.gpg.key'
- os: linux
compiler: clang++-8
env: UBSAN=1 TOOLSET=clang COMPILER=clang++-8 CXXSTD=03,11,14,17,2a UBSAN_OPTIONS=print_stacktrace=1
dist: xenial
compiler: clang++-10
env: TOOLSET=clang COMPILER=clang++-10 CXXSTD=03,11,14,17,2a
addons:
apt:
packages:
- clang-8
- clang-10
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-xenial-8
- sourceline: 'deb https://apt.llvm.org/xenial/ llvm-toolchain-xenial-10 main'
key_url: 'https://apt.llvm.org/llvm-snapshot.gpg.key'
- os: linux
dist: xenial
compiler: clang++-10
env: UBSAN=1 TOOLSET=clang COMPILER=clang++-10 CXXSTD=03,11,14,17,2a UBSAN_OPTIONS=print_stacktrace=1
addons:
apt:
packages:
- clang-10
sources:
- ubuntu-toolchain-r-test
- sourceline: 'deb https://apt.llvm.org/xenial/ llvm-toolchain-xenial-10 main'
key_url: 'https://apt.llvm.org/llvm-snapshot.gpg.key'
- os: linux
dist: trusty
@@ -311,6 +337,10 @@ matrix:
compiler: clang++
env: UBSAN=1 TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,1z UBSAN_OPTIONS=print_stacktrace=1
- os: freebsd
compiler: clang++
env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,17,2a
- os: linux
env: CMAKE=1
script:
+1
View File
@@ -1,5 +1,6 @@
<style>
*:not(pre)>code { background: none; color: #600000; }
:not(pre):not([class^=L])>code { background: none; color: #600000; }
</style>
+5 -1
View File
@@ -8,9 +8,13 @@ http://www.boost.org/LICENSE_1_0.txt
////
[#changes]
# Release History
# Revision History
:idprefix:
## Changes in Boost 1.74
* `operator bool()` now returns `failed()` instead of `value() != 0`.
## Changes in Boost 1.69
* Boost.System is now header-only. A stub library is still built for
+16 -9
View File
@@ -568,7 +568,8 @@ constexpr void clear() noexcept;
[none]
* {blank}
+
Ensures: :: `val_ == 0`; `*cat_ == system_category()`.
Ensures: ::
`val_ == 0`; `*cat_ == system_category()`.
#### Observers
@@ -626,7 +627,7 @@ constexpr explicit operator bool() const noexcept;
[none]
* {blank}
+
Returns: :: `val_ != 0`.
Returns: :: `failed()`.
```
operator std::error_code() const;
@@ -634,7 +635,8 @@ operator std::error_code() const;
[none]
* {blank}
+
Returns: :: `std::error_code( val_, *cat_ )`.
Returns: ::
`std::error_code( val_, *cat_ )`.
### Class error_condition
@@ -711,7 +713,8 @@ template <class ErrorConditionEnum>
* {blank}
+
Ensures: :: `*this == make_error_condition( e )`.
Remarks: :: This constructor is only enabled when `is_error_condition_enum<ErrorConditionEnum>::value` is `true`.
Remarks: ::
This constructor is only enabled when `is_error_condition_enum<ErrorConditionEnum>::value` is `true`.
#### Modifiers
@@ -739,7 +742,8 @@ constexpr void clear() noexcept;
[none]
* {blank}
+
Ensures: :: `val_ == 0`; `*cat_ == generic_category()`.
Ensures: ::
`val_ == 0`; `*cat_ == generic_category()`.
#### Observers
@@ -789,7 +793,7 @@ constexpr explicit operator bool() const noexcept;
[none]
* {blank}
+
Returns: :: `val_ != 0`.
Returns: :: `failed()`.
```
operator std::error_condition() const;
@@ -797,7 +801,8 @@ operator std::error_condition() const;
[none]
* {blank}
+
Returns: :: `std::error_condition( val_, *cat_ )`.
Returns: ::
`std::error_condition( val_, *cat_ )`.
### Nonmember functions
@@ -882,7 +887,8 @@ std::size_t hash_value( const error_code & ec );
[none]
* {blank}
+
Returns: :: A hash value representing `ec`.
Returns: ::
A hash value representing `ec`.
## <boost/system/system_error.hpp>
@@ -941,7 +947,8 @@ system_error( int ev, const error_category & ecat );
[none]
* {blank}
+
Ensures: :: `code() == error_code( ev, ecat )`.
Ensures: ::
`code() == error_code( ev, ecat )`.
#### Observers
@@ -47,23 +47,23 @@ public:
}
}
virtual const char * name() const BOOST_NOEXCEPT
const char * name() const BOOST_NOEXCEPT BOOST_OVERRIDE
{
return pc_->name();
}
virtual std::string message( int ev ) const
std::string message( int ev ) const BOOST_OVERRIDE
{
return pc_->message( ev );
}
virtual std::error_condition default_error_condition( int ev ) const BOOST_NOEXCEPT
std::error_condition default_error_condition( int ev ) const BOOST_NOEXCEPT BOOST_OVERRIDE
{
return pc_->default_error_condition( ev );
}
virtual bool equivalent( int code, const std::error_condition & condition ) const BOOST_NOEXCEPT;
virtual bool equivalent( const std::error_code & code, int condition ) const BOOST_NOEXCEPT;
bool equivalent( int code, const std::error_condition & condition ) const BOOST_NOEXCEPT BOOST_OVERRIDE;
bool equivalent( const std::error_code & code, int condition ) const BOOST_NOEXCEPT BOOST_OVERRIDE;
};
#if !defined(__SUNPRO_CC) // trailing __global is not supported
+13 -13
View File
@@ -287,13 +287,13 @@ public:
{
}
const char * name() const BOOST_NOEXCEPT
const char * name() const BOOST_NOEXCEPT BOOST_OVERRIDE
{
return "generic";
}
std::string message( int ev ) const;
char const * message( int ev, char * buffer, std::size_t len ) const BOOST_NOEXCEPT;
std::string message( int ev ) const BOOST_OVERRIDE;
char const * message( int ev, char * buffer, std::size_t len ) const BOOST_NOEXCEPT BOOST_OVERRIDE;
};
class BOOST_SYMBOL_VISIBLE system_error_category: public error_category
@@ -305,15 +305,15 @@ public:
{
}
const char * name() const BOOST_NOEXCEPT
const char * name() const BOOST_NOEXCEPT BOOST_OVERRIDE
{
return "system";
}
error_condition default_error_condition( int ev ) const BOOST_NOEXCEPT;
error_condition default_error_condition( int ev ) const BOOST_NOEXCEPT BOOST_OVERRIDE;
std::string message( int ev ) const;
char const * message( int ev, char * buffer, std::size_t len ) const BOOST_NOEXCEPT;
std::string message( int ev ) const BOOST_OVERRIDE;
char const * message( int ev, char * buffer, std::size_t len ) const BOOST_NOEXCEPT BOOST_OVERRIDE;
};
} // namespace detail
@@ -515,7 +515,7 @@ public:
BOOST_SYSTEM_CONSTEXPR explicit operator bool() const BOOST_NOEXCEPT // true if error
{
return val_ != 0;
return failed_;
}
#else
@@ -525,12 +525,12 @@ public:
BOOST_SYSTEM_CONSTEXPR operator unspecified_bool_type() const BOOST_NOEXCEPT // true if error
{
return val_ != 0? unspecified_bool_true: 0;
return failed_? unspecified_bool_true: 0;
}
BOOST_SYSTEM_CONSTEXPR bool operator!() const BOOST_NOEXCEPT // true if no error
{
return val_ == 0;
return !failed_;
}
#endif
@@ -656,7 +656,7 @@ public:
BOOST_SYSTEM_CONSTEXPR explicit operator bool() const BOOST_NOEXCEPT // true if error
{
return val_ != 0;
return failed_;
}
#else
@@ -666,12 +666,12 @@ public:
BOOST_SYSTEM_CONSTEXPR operator unspecified_bool_type() const BOOST_NOEXCEPT // true if error
{
return val_ != 0? unspecified_bool_true: 0;
return failed_? unspecified_bool_true: 0;
}
BOOST_SYSTEM_CONSTEXPR bool operator!() const BOOST_NOEXCEPT // true if no error
{
return val_ == 0;
return !failed_;
}
#endif
+1 -1
View File
@@ -47,7 +47,7 @@ namespace boost
virtual ~system_error() BOOST_NOEXCEPT_OR_NOTHROW {}
error_code code() const BOOST_NOEXCEPT { return m_error_code; }
const char * what() const BOOST_NOEXCEPT_OR_NOTHROW;
const char * what() const BOOST_NOEXCEPT_OR_NOTHROW BOOST_OVERRIDE;
private:
error_code m_error_code;
+5 -1
View File
@@ -61,7 +61,11 @@ system-run failed_constexpr_test.cpp ;
# Quick (CI) test
run quick.cpp ;
run warnings_test.cpp : : : <warnings>all <warnings-as-errors>on <toolset>gcc:<cxxflags>-Wnon-virtual-dtor <toolset>clang:<cxxflags>-Wnon-virtual-dtor ;
compile warnings_test.cpp
: <warnings>pedantic
<toolset>msvc:<warnings-as-errors>on
<toolset>gcc:<warnings-as-errors>on
<toolset>clang:<warnings-as-errors>on ;
lib std_single_instance_lib1 : std_single_instance_1.cpp : <link>shared:<define>STD_SINGLE_INSTANCE_DYN_LINK ;
lib std_single_instance_lib2 : std_single_instance_2.cpp : <link>shared:<define>STD_SINGLE_INSTANCE_DYN_LINK ;
+3 -3
View File
@@ -123,13 +123,13 @@ template<class Ec> void test()
{
Ec ec( 0, http_category() );
BOOST_TEST( ec.failed() );
TEST_FAILED( ec );
ec.assign( 200, http_category() );
BOOST_TEST( !ec.failed() );
TEST_NOT_FAILED( ec );
ec = Ec( 404, http_category() );
BOOST_TEST( ec.failed() );
TEST_FAILED( ec );
}
}
+6
View File
@@ -8,6 +8,7 @@
// See library home page at http://www.boost.org/libs/system
#include <boost/system/system_error.hpp>
#include <boost/system/error_code.hpp>
#include <boost/core/lightweight_test.hpp>
#include <cerrno>
@@ -32,5 +33,10 @@ int main()
BOOST_TEST( bc == bn );
boost::system::system_error x( bc, "prefix" );
BOOST_TEST_EQ( x.code(), bc );
BOOST_TEST_EQ( std::string( x.what() ), "prefix: " + bc.message() );
return boost::report_errors();
}
+10
View File
@@ -8,12 +8,17 @@
// See library home page at http://www.boost.org/libs/system
#if defined(__GNUC__) && __GNUC__ >= 5 && __cplusplus >= 201103L
# pragma GCC diagnostic error "-Wsuggest-override"
#endif
#include <boost/config.hpp>
#if defined( BOOST_GCC ) && BOOST_GCC < 40600
#pragma GCC diagnostic ignored "-Wnon-virtual-dtor"
#endif
#include <boost/system/system_error.hpp>
#include <boost/system/error_code.hpp>
#include <boost/core/lightweight_test.hpp>
#include <cerrno>
@@ -38,5 +43,10 @@ int main()
BOOST_TEST( bc == bn );
boost::system::system_error x( bc, "prefix" );
BOOST_TEST_EQ( x.code(), bc );
BOOST_TEST_EQ( std::string( x.what() ), "prefix: " + bc.message() );
return boost::report_errors();
}