boostorg / boostorg/program_options
Compilation failure with Clang 17 and `-std=cpp23`
- 主要言語
- C++
- スター
- 136
- フォーク
- 117
- PR マージ指標
- 30日以内にマージされた PR はありません
説明
## 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
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
調査の方向性
添付されたアーカイブを展開し、Clang 17、GCC 14、C++23 を使用して文書化された cmake preset を実行し、boost/program_options.hpp に起因する失敗を再現します。C++20 でのビルドと比較してから、報告された tuple/get 診断に関係する program_options ヘッダーを調査します。報告された C++23 構成で、workaround を必要とせずに再現ビルドが正常にコンパイルできれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- cmake, cpp
- 領域
- build-system, compilers
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 35/100