boostorg / boostorg/program_options

Compilation failure with Clang 17 and `-std=cpp23`

Open
#137 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
136
Forks
117
PR merge metrics
No merged PRs in 30d

Description

## Summary

Including `` causes a compilation failure when compiling with clang 17.0.6 and GNU stdlibc++ 14 with `-std=gnu++23`

## Steps to reproduce

Install boost (a conanfile is provided) and extract the attached archive.

[boost-po-test.tar.gz](https://github.com/user-attachments/files/15748101/boost-po-test.tar.gz)

```
tar -xf boost-po-test-tgz
cd boost-po-test/
cmake --preset default
cmake --build build/default
```

## Expected result

compilation is successful

## Actual result

compilation fails with

```
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.1.1/../../../../include/c++/14.1.1/tuple:956:36: error: no matching function for call to 'get'
956 | return __convertible(std::declval<_UTuple>()))...>();
```

## Workaround

Edit the `CMakeLists.txt` file and change

```
set(CMAKE_CXX_STANDARD 23)
```
to
```
set(CMAKE_CXX_STANDARD 20)
```

and recompile.

## System Info

Boost 1.85.0 (conan)
Arch Linux
Clang 17.0.6
GCC 14.1.1

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.