Apparently, MSVC 14.0 does not import type aliases into namespaces via
a using-declaration. Work around the problem by enabling the use of
a compiler intrinsic for deducing the underlyng type of the enum.
This function is not really needed and can be replaced with double
negation (!!) or comparison with an enum value of zero. We should
prefer to minimize polluting the user's namespace with new names.
This bumps the language requirement to C++11, although for compilers
that support the __underlying_type intrinsic this may work even in C++03
mode.
The operators generated by BOOST_BITMASK now use proper underlying types
for casts, which means the operators will no longer truncate bits from
large enums.
Also mark the operators as noexcept and constexpr (since C++14).
* Make the library modular usable.
* Switch to library requirements instead of source. As source puts extra source in install targets.
* Add missing b2 testing module import.
* Add missing import-search for cconfig/predef checks.
* Add requires-b2 check to top-level build file.
* Bump B2 require to 5.2
* Update copyright dates.
* Move inter-lib dependencies to a project variable and into the build targets.
* Update build deps.
- Added gcc-12 and clang-13 through 15 jobs.
- Added C++23 testing for gcc and clang on Linux.
- Updated clang version for UBSAN job.
- Updated Ubuntu version for clang jobs to avoid having to use external APT
repository.
- Updated python package installation for compatibility with Ubuntu 22.04.
Replaced ISO-8859-1 copyright character with (c) and changed the order
of date and name to be consistent with other copyrights.
Closes https://github.com/boostorg/detail/pull/22.
In Ubuntu 20.04 there appeared an updated version of the
software-properties-common package in focal-updates, which ships a newer
apt-add-repository version that doesn't support -P/-S/-U command line arguments.
Since we cannot rely on package version checks to determine apt-add-repository
capabilities, we have to parse its --help output instead.
Also, made source list processing more protected against spaces.
When running multiple different configurations of test_utf8_codecvt, e.g.
debug/release or different C++ versions, the test used to spuriously fail
because the test processes would conflict through the files the test creates.
To work around this, the test now creates the files in the same directory
where the test executable is located. With Boost.Build, that means the files
will be created in different directories for different configs.
This should fix spurious test failures in CI.
cc32906071 introduced inconsistent
BOOST_UTF8_DECL markup between function declarations and definitions,
which caused MSVC build errors. This commit fixes this.
Also, replaced unneeded BOOST_UTF8_DECL markup with inline for functions
that are only used internally. Made get_cont_octet_out_count static.
Additionally, removed duplicate octet1_modifier_table definitions
and moved it to a function-local static.
Whitespace and formatting cleanup.
Closes https://github.com/boostorg/filesystem/issues/204.
* commit 'a01fe6d57b906edf0400daebfb5ea88bb4582f44':
Update CMakeLists.txt
Fixed out-of-bounds access in utf8_codecvt_facet::do_length.
Update maintainer list
Disabled libstdc++ debug mode to work around gcc 10.1 bug.
Added a workaround for removed nested typedefs in std::allocator.
Added a workaround for C++20 ostream having deleted operator<< for wchar_t.
Added gcc 10 build jobs to Travis CI.
Use more up-to-date location of lightweight_test.hpp
Converted binary_search_test to lightweight_test.hpp
Converted allocator_utilities_test to lightweight_test.hpp
Converted blank_test to lightweight_test.hpp.
Removed use of deprecated header boost/detail/iterator.hpp.
Reordered includes.
Added boost/config.hpp.
Changed because config.hpp is not being included
Added clang-10 jobs to Travis CI.
Change __BORLANDC__ to BOOST_BORLANDC, which is defined in Boost config for the Embarcadero non-clang-based compilers.
Disabled OS X builds because they are slow on Travis CI.
Updated CI configs, added compilers.
The loop in do_length used to dereference from_end pointer, which
could point to an out-of-bounds memory. Rewritten the loop to
avoid this and also make the logic a bit more clear.
Closes https://github.com/boostorg/detail/pull/21.