boostorg / boostorg/program_options

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

Abierto
#137 2 comentarios 0 reacciones 0 asignados Ver en GitHub
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

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.