boostorg / boostorg/program_options
Compilation failure with Clang 17 and `-std=cpp23`
- Lingua principale
- C++
- Stelle
- 136
- Fork
- 117
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
## 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
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Direzione di ricerca
Estrai l’archivio allegato ed esegui il cmake preset documentato con Clang 17, GCC 14 e C++23 per riprodurre il fallimento proveniente da boost/program_options.hpp. Confronta la build con C++20, quindi esamina gli header program_options coinvolti nella diagnostica tuple/get segnalata. Il lavoro è completato quando la riproduzione viene compilata correttamente con la configurazione C++23 indicata senza richiedere il workaround.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- cmake, cpp
- Ambito
- build-system, compilers
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100