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).
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.
1. Ported to Boost.TypeTraits primitives for type inspection and simple
metaprogramming instead of local implementations. This effectively
drops any workarounds for compilers without support for partial template
specializations. Such compilers are long outdated.
2. Include more fine-grained headers from Boost.TypeTraits to optimize
compilation times.
3. Made numeric_distance function constexpr.
4. Updated the test accordingly (i.e. replaced the use of now removed local
components with Boost.TypeTraits). Also replaced lexical_cast with
standard streams to further reduce dependencies.
None of these changes should affect functionality.