ExerciseC++読書会 vol.6
#ExerciseC++
https://scrapbox.io/files/6983353470707df9ae4835e5.png
開催日時
2026年5月12日(火) 19:30~21:00
開催URL
https://cpp-osaka.connpass.com/event/393210/
参加人数
6人
ウォーミングアップ
パズル13
code: cpp
false
false
false
true
// コメントに騙された・・・(答えは「0001」)
coutにboolを入れたときにどうなるかまでしっかり考えないといけなかった
テンプレートパラメータ
template<typenameの直後に書かれている内容
テンプレートパラメータ型
(テンプレートパラメータが絡んだ)関数の引数の型
おそらく意図的にまったく触れられていないが右辺値参照の場合はさらにルールが異なる
配列を渡したときの推論
そのままだとポインタになるが、参照で引き渡すと配列長情報も欠落せず渡せる
非型テンプレートパラメータで配列サイズを受け取れる
std::array
生の配列からstd::arrayへの変換は暗黙的には行えない
std::arrayを使う際、サイズの省略が出来ずに面倒だった
code: cpp
std::array<int, 3> ar = {1, 2, 3};
C++17からは省略できるようになった
https://cpprefjp.github.io/lang/cpp17/type_deduction_for_class_templates.html
make_arrayないの?
提案はされていたと思う
https://en.cppreference.com/cpp/experimental/make_array
to_arrayと推論補助が導入されたのでremoveされてる
to_arrayはC++20から導入されている
https://en.cppreference.com/cpp/container/array/to_array
パズル14
code: cpp
1
// ↑間違い
0か1どっちだ…
クイズ的には1だと説明することがないので0になりそうという推論
型と少なくとも同じ大きさである。
翻訳がちょっと怪しい気がする
「以上」というニュアンスが抜けている
アセンブリ言語の足し算の話
int32_t
結局どれかの基本型のtypedef
今後128bitが出たら
long long longになる?
もうサイズを型名にしたほうがいい
しかし、実装ではcharとintの両方が16ビットで、charとしてsigned charが選択されているという状況
仮の話
これ「charの範囲は0~65535まで」と言っているのでsigned charではなくunsigned charという状況のはず #typo
charは1byteなのは規格で決まっている
ただ、1byteがかならず8bitであるとは定義されていない
上記の仮の話は1byteが16bitである世界線の話?
2008年にISOの規格として8bitと定められた
https://ja.wikipedia.org/wiki/IEC_80000-13
ISO規格で定められているのは強いね
パズル15
次回ここから
お悩み雑談室
https://ja.wikipedia.org/wiki/テレホーダイ