Boost logo

Boost :

From: Marshall Clow (mclow.lists_at_[hidden])
Date: 2024-04-07 17:39:28


> On Apr 6, 2024, at 10:35 PM, Marshall Clow <mclow.lists_at_[hidden]> wrote:
>
>> On Apr 6, 2024, at 12:57 PM, Ruben Perez <rubenperez038_at_[hidden]> wrote:
>>
>>> As always, the release managers would appreciate it if you download the
>>> candidate of your choice and give building it a try. Please report both
>>> success and failure, and anything else that is noteworthy.
>>
>> Program options seem to fail to build under C++23 (Ubuntu 22.04,
>> clang-19, release). Here's the build log:
>
> Ruben —
>
> Did the 1.85.0 beta have this same problem?

I suspect that the problem was introduced in this commit:

commit 847b130e19a9e5118bfb5486e9b4d4f6ab2797a2
Author: Ed Catmur <ed_at_[hidden]>
Date: Thu Feb 23 11:39:17 2023 +0000

    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_at_[hidden]>

And it looks like it has been fixed in develop:

        https://github.com/boostorg/program_options/commit/1d7cceff6c8a5d40593776d7578a984852df5b75

Is that correct?

— Marshall

>
> Thanks,
> — Marshall
>
>
>>
>> clang-linux.compile.c++
>> bin.v2/libs/program_options/build/clang-linux-19/release/cxxstd-23-iso/threading-multi/visibility-hidden/split.o
>> In file included from libs/program_options/src/split.cpp:10:
>> In file included from ./boost/program_options/parsers.hpp:12:
>> In file included from ./boost/program_options/detail/cmdline.hpp:11:
>> ./boost/program_options/errors.hpp:124:34: error: exception
>> specification is not available until end of class definition
>> 124 | BOOST_DEFAULTED_FUNCTION(~error_with_option_name() throw(), {})
>> | ^
>> ./boost/program_options/errors.hpp:212:34: error: exception
>> specification is not available until end of class definition
>> 212 | BOOST_DEFAULTED_FUNCTION(~multiple_values() throw(), {})
>> | ^
>> ./boost/program_options/errors.hpp:223:34: error: exception
>> specification is not available until end of class definition
>> 223 | BOOST_DEFAULTED_FUNCTION(~multiple_occurrences() throw(), {})
>> | ^
>> ./boost/program_options/errors.hpp:236:33: error: exception
>> specification is not available until end of class definition
>> 236 | BOOST_DEFAULTED_FUNCTION(~required_option() throw(), {})
>> | ^
>> ./boost/program_options/errors.hpp:261:34: error: exception
>> specification is not available until end of class definition
>> 261 | BOOST_DEFAULTED_FUNCTION(~error_with_no_option_name()
>> throw(), {})
>> | ^
>> ./boost/program_options/errors.hpp:273:34: error: exception
>> specification is not available until end of class definition
>> 273 | BOOST_DEFAULTED_FUNCTION(~unknown_option() throw(), {})
>> | ^
>> ./boost/program_options/errors.hpp:286:34: error: exception
>> specification is not available until end of class definition
>> 286 | BOOST_DEFAULTED_FUNCTION(~ambiguous_option() throw(), {})
>> | ^
>> ./boost/program_options/errors.hpp:323:34: error: exception
>> specification is not available until end of class definition
>> 323 | BOOST_DEFAULTED_FUNCTION(~invalid_syntax() throw(), {})
>> | ^
>> ./boost/program_options/errors.hpp:343:34: error: exception
>> specification is not available until end of class definition
>> 343 | BOOST_DEFAULTED_FUNCTION(~invalid_config_file_syntax()
>> throw(), {})
>> | ^
>> ./boost/program_options/errors.hpp:358:34: error: exception
>> specification is not available until end of class definition
>> 358 |
>> BOOST_DEFAULTED_FUNCTION(~invalid_command_line_syntax() throw(), {})
>> | ^
>> ./boost/program_options/errors.hpp:383:34: error: exception
>> specification is not available until end of class definition
>> 383 | BOOST_DEFAULTED_FUNCTION(~validation_error() throw(), {})
>> | ^
>> 11 errors generated.
>>
>> "clang++-19" -std=c++23 -fvisibility-inlines-hidden -fPIC -m64
>> -pthread -O3 -Wall -fvisibility=hidden -Wno-inline
>> --target=x86_64-pc-linux -DBOOST_ALL_NO_LIB=1
>> -DBOOST_COBALT_USE_STD_PMR=1 -DBOOST_PROGRAM_OPTIONS_DYN_LINK=1
>> -DNDEBUG -I"." -c -o
>> "bin.v2/libs/program_options/build/clang-linux-19/release/cxxstd-23-iso/threading-multi/visibility-hidden/split.o"
>> "libs/program_options/src/split.cpp"
>>
>> The RC builds fine in C++20 (same compiler and system).
>>
>>>
>>> -- The Release managers
>>>
>>>
>>> _______________________________________________
>>> Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
>


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk