Commit Graph

507 Commits

Author SHA1 Message Date
Peter Dimov
d1ddaa8a0e Fix Cygwin failures 2024-04-08 03:15:51 +03:00
Peter Dimov
c832f18c08 Update appveyor.yml 2024-04-07 20:51:10 +03:00
Peter Dimov
8f848d8b75 Merge pull request #133 from Lastique/feature/fix_cxx23_nothrow
Fix C++20 incompatibility from using exception specifications
2024-04-07 20:34:34 +03:00
Andrey Semashev
1d7cceff6c Fix C++20 incompatibility from using exception specifications.
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.
2024-04-07 19:43:41 +03:00
Peter Dimov
5f233f00be Update ci.yml 2024-04-07 19:25:38 +03:00
Sylvain Joubert
fafcca13d8 Add support for std::optional (#132) 2024-03-05 22:57:52 +02:00
Markus Klemm
2b8bac66a9 Allow argc to be zero boost-1.85.0.beta1 2023-12-16 18:35:09 +00:00
Peter Dimov
3aae04bf65 Define BOOST_TIMER_ENABLE_DEPRECATED in test_convert.cpp boost-1.84.0.beta1 boost-1.84.0 2023-10-21 18:46:22 +03:00
Peter Dimov
f941ba88a7 Avoid macro redefinition warnings 2023-10-21 18:41:37 +03:00
Peter Dimov
dbec456b8a Regenerate CMakeLists.txt 2023-10-21 18:38:25 +03:00
Peter Dimov
9f29f8e104 Remove C++03 from ci.yml 2023-10-21 18:37:30 +03:00
Peter Dimov
93f4114948 Update cxxstd requirement in meta/libraries.json; dependencies such as Any require C++11 2023-10-21 18:36:37 +03:00
Peter Dimov
a97daf413d Add test/CMakeLists.txt 2023-10-21 18:26:31 +03:00
Peter Dimov
3777e67b9f Add cmake_install_test, cmake_subdir_test 2023-10-21 18:19:29 +03:00
Peter Dimov
c8cd11ddf5 Update ci.yml 2023-10-21 18:13:15 +03:00
Ed Catmur
847b130e19 Use BOOST_DEFAULTED_FUNCTION on empty destructors (#122)
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>
2023-02-23 14:39:17 +03:00
Edward Diener
0a1e54ba90 [skip ci] Add "cxxstd" metadata field 2021-07-11 18:02:14 +03:00
Peter Dimov
7bcbb4ea23 Update ci.yml boost-1.83.0.beta1 boost-1.83.0 boost-1.82.0.beta1 boost-1.82.0 boost-1.81.0.beta1 boost-1.81.0 boost-1.80.0.beta1 boost-1.80.0 boost-1.79.0.beta1 boost-1.79.0 boost-1.78.0.beta1 boost-1.78.0 boost-1.77.0.beta1 boost-1.77.0 2021-06-09 19:14:13 +03:00
Peter Dimov
827426db9c Do not define BOOST_PROGRAM_OPTIONS_SOURCE in CMakeLists.txt 2021-06-09 18:43:51 +03:00
Peter Dimov
e9403da22d Update ci.yml 2021-05-28 18:33:52 +03:00
Peter Dimov
36052766c7 Update ci.yml 2021-05-28 17:43:33 +03:00
Peter Dimov
ddfaf00542 Merge pull request #106 from boostorg/pr/exception-visibility
Mark exception classes as BOOST_SYMBOL_VISIBLE
2021-05-28 17:37:37 +03:00
Peter Dimov
ce6a40b81a Add CMakeLists.txt 2021-05-28 00:53:15 +03:00
Peter Dimov
7a7f0ce1fa Mark the rest of the exception classes as BOOST_SYMBOL_VISIBLE 2021-02-02 21:41:06 +02:00
Peter Dimov
f1e9b5dc15 Add back _DECL to exception classes to avoid warnings when an exported class inherits from a non-exported one 2021-02-02 21:41:06 +02:00
Peter Dimov
df8412fe9e Mark header-only exception classes as visible 2021-02-02 21:41:06 +02:00
Peter Dimov
3c0d0fa6ee msvc-14.2 /std:c++latest no longer allows literal to char* conversions (#105) 2021-02-02 22:24:32 +03:00
Peter Dimov
f62555fa75 Add .github/workflows 2021-02-02 20:34:50 +02:00
Peter Dimov
43cc2af3b1 Merge branch 'master' into develop 2021-02-02 19:19:09 +02:00
Edward Diener
0414abe3f4 Unbreak Embarcadero C++ clang-based compilers
* 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
2020-08-25 19:30:10 +03:00
Mateusz Łoskot
a2379420f6 Avoid deprecated bind placeholders in global namespace
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.
2020-04-01 14:13:13 +03:00
Peter Dimov
fcffe08c83 Remove manual RTTI defines 2019-06-01 22:19:45 +03:00
Vladimir Prus
bc0c90a70f Merge branch 'develop' boost-1.76.0.beta1 boost-1.76.0 boost-1.75.0.beta1 boost-1.75.0 boost-1.74.0.beta1 boost-1.74.0 boost-1.73.0.beta1 boost-1.73.0 boost-1.72.0.beta1 boost-1.72.0 boost-1.71.0.beta1 boost-1.71.0 boost-1.70.0.beta1 boost-1.70.0 boost-1.69.0-beta1 boost-1.69.0 boost-1.68.0 2018-07-06 17:35:40 +03:00
Vladimir Prus
d95d316848 fix msvc 10 error. 2018-07-06 17:35:12 +03:00
Emre Turkay
0410ddcbd2 Pull back cpp file change of default template value definition for parse_config_file. 2018-07-06 10:38:43 +03:00
Emre Turkay
64c3ae0fde Specified a default value for the template argument of parse_config_file. 2018-07-06 10:38:43 +03:00
Vladimir Prus
331ed69055 Merge branch 'develop' 2018-07-06 10:36:17 +03:00
Vladimir Prus
a2cbe31bef fix typo 2018-07-06 10:34:49 +03:00
Vladimir Prus
46ad442da1 Merge branch 'develop' 2018-06-27 22:32:29 +03:00
Eyal Rozenberg
589d55837e Fixes #1: Support for multiple long names per option
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
2018-06-27 22:25:43 +03:00
Vladimir Prus
4b81beaaa9 Disable usbsan.
It presently fails like this:

    /usr/bin/ld: unrecognized option '--push-state--no-as-needed'
    /usr/bin/ld: use the --help option for usage information
    collect2: error: ld returned 1 exit status
        "g++-7"    -o "../../bin.v2/libs/program_options/test/gcc-7/debug/cxxstd-03-iso/link-static/test_convert"
       -Wl,--start-group
        "../../bin.v2/libs/program_options/test/gcc-7/debug/cxxstd-03-iso/link-static/test_convert.o"
        "../../bin.v2/libs/program_options/build/gcc-7/debug/cxxstd-03-iso/link-static/libboost_program_options.a"
       -Wl,-Bstatic  -Wl,-Bdynamic  -Wl,--end-group -m64 -std=c++03 -g -fno-sanitize-recover=undefined -fsanitize=undefined

This error seems like some misconfiguration of compiler install, not something I can fix.
2018-06-14 15:02:07 +03:00
Vladimir Prus
bacc983235 Disable examples that use C++11 features. 2018-06-14 13:57:17 +03:00
James E. King, III
7d495841ed Fix mention of date_time in the readme 2018-05-14 17:59:01 +03:00
Daniel James
646cc20a54 Fix the documentation build 2018-03-23 11:26:22 +03:00
Tom Kent
9bf97405dc Additional examples (#21)
* Added multiple inputs to example

In the section after the introduction of using value<vector<...>> to store
multiple values, I updated the example to show multiple input values and their
results.

* Make it clear how to enable sections for ini files

It was unclear how the user should support sections, should they have nested options_description's (no), nested variables_map's (no), it is just a dotted string that is input! This adds a snippet showing that.

* Added an example for environment options

This example shows how to use program_options to pull environmental options
into a program. This instance uses a function to map env options to config
options.

* Added an example showing different types in a config file

I went through a lot of the common types that a user may want to include in
a config file (especially the boolean options) and showed an example with
them all.

With some minor modifications, this could also be added to the tests directory
as there are several cases in here that I didn't see checked anywhere else in
the code.

* Added explanation comments to new examples

* Added an example with a heirarchy of inputs

This file shows an example program that can get inputs from the command line,
environmental variables, multiple config files specified on the command line,
and a default config file. There are multiple usage examples at the bottom in
the comments.

* Reference to example showing environment options

* Added section detailing type conversion.

Added explicity acknowledging that hex/oct/bin formatted strings aren't allowed.
Detailed the bool_switch value and what strings evaluate true/false.

* Added a global to the config file example

* Semicolon typo

* Split components into seperate functions

* Added unregistered entry and flag to prevent error

* Added logic to capture unregistered value

* Build new examples

* Backslashes need escaping on unix

* match permissions
2018-03-22 18:29:58 +03:00
Vladimir Prus
491cb17e3a Fix uninitialized validation_error::m_kind. 2018-03-16 12:35:57 +03:00
Vladimir Prus
d295fcca69 Disable coverity, since they appear to have some problems. 2018-03-15 22:58:22 +03:00
Vladimir Prus
f955bd6b9f Update appveyor master badge. 2018-03-15 22:52:02 +03:00
Vladimir Prus
46caf622db Merge branch 'develop' boost-1.67.0 2018-03-15 22:21:23 +03:00
Vladimir Prus
168f96934f Change appveyor badge url 2018-03-15 22:13:25 +03:00