Open3
読者コミュニティ|C++23入門 基本編
本の感想や質問、マサカリなどはこちらに。
cabinでのC++23の指定ですが、うまくできません…17で解釈されます。
2章時点でのディレクトリ構造に従った状態で、cabin runを叩くと以下のようになります
◎ cabin run □ procon/hello 38% ↓ 12:08
Compiling hello v0.1.0 (/home/user/procon/hello)
FAILED: /home/user/procon/hello/build/dev/packages/hello/obj/hello/src/main.cc.o
/usr/bin/c++ '-std=c++17' -O0 -g -MMD -MF /home/user/procon/hello/build/dev/packages/hello/obj/hello/src/main.cc.o.
d '-std=c++23' -c /home/user/procon/hello/src/main.cc -o /home/user/procon/hello/build/dev/packages/hello/obj/hel
lo/src/main.cc.o
/home/user/procon/hello/src/main.cc:1:10: fatal error: print: No such file or directory
1 | #include <print>
| ^~~~~~~
compilation terminated.
ninja: build stopped: subcommand failed.
error: ninja exited with exit status: 1
環境は以下の通りです
- Linux laptop 6.6.114.1-microsoft-standard-WSL2 #1 SMP PREEMPT_DYNAMIC Mon Dec 1 20:46:23 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
- cabin 0.14.0
- gcc (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0
- Ubuntu clang version 18.1.3 (1ubuntu1)
- ninja 1.11.1
GCC で std::println が実装されたのが GCC 14 以降であることは本文にも記載の通りです。
Ubuntu 24 ならば apt で g++-14 をインストールしたうえで cabin.toml に
[toolchain]
cxx = "g++-14"
を追記することでビルドが成功すると思います。