C++20 removed support for `throw()` exception specifications, so at
least clang-19 is now emitting errors on them. Replaced exception
specifications with BOOST_NOEXCEPT_OR_NOTHROW, which converts `throw()`
to `noexcept`, but keeps the code formally compatible with C++03.
C++20 removed support for `throw()` exception specifications, so at
least clang-19 is now emitting errors on them. Replaced exception
specifications with BOOST_NOEXCEPT_OR_NOTHROW, which converts `throw()`
to `noexcept`, but keeps the code formally compatible with C++03.
The compiler-generated copy constructor and copy assignment operator are deprecated since C++11 on classes with user-declared destructors.
This change allows clean compilation with the -Wdeprecated-copy-dtor/-Wdeprecated-copy-with-user-provided-dtor flag.
Co-authored-by: Ed Catmur <edward.catmur@mavensecurities.com>
* Change __BORLANDC__ to BOOST_BORLANDC, which is defined in Boost config for the Embarcadero non-clang-based compilers.
* Restored a Borland check.
* Specify std:: for all standard identifiers and remove 'using namespace std:'.
* Removed std:: from C header abort call.
* Moved 'using namespace std;' after header file inclusions
This fixes numerous compilation warnings:
note: #pragma message:
The practice of declaring the Bind placeholders (_1, _2, ...)
in the global namespace is deprecated.
Please use <boost/bind/bind.hpp> + using namespace boost::placeholders,
or define BOOST_BIND_GLOBAL_PLACEHOLDERS to retain the current behavior.
An unintrusive implementation - no existing interfaces changed, and a single addition for obtaining all of the different long names.
Notes:
* Tests added for the new functionality, and existing tests expanded to take it into account.
* It is now impossible to specify long names with commas in them (but then, that wasn't properly supported before either, more of an oversight).
* The multiple long options are not included in the usage information - just the first one of them is printed