boostorg / boostorg/program_options
Compilation failure with Clang 17 and `-std=cpp23`
- Lenguaje dominante
- C++
- Estrellas
- 136
- Forks
- 117
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
## 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
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Línea de trabajo
Extrae el archivo adjunto y ejecuta el cmake preset documentado con Clang 17, GCC 14 y C++23 para reproducir el fallo de boost/program_options.hpp. Compara la compilación con C++20 y, después, inspecciona los headers de program_options implicados en el diagnóstico reportado de tuple/get. Se considera terminado cuando la reproducción compila correctamente con la configuración de C++23 indicada sin requerir el workaround.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- cmake, cpp
- Área
- build-system, compilers
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100