boostorg / boostorg/program_options

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

Aperta
#137 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub
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

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.