C++20 コア言語機能読書会vol.14
開催日時
2022年9月7日(水) 21:00~22:30
開催URL
参加人数
X人
ウォーミングアップ
3.9 constinit
静的変数に対して定数で初期化されることを保証する指定子
定数で初期化されないようなコードだとコンパイルエラーになる
あくまで初期化が定数というだけであり、その変数がconstになることはないので再代入可能
「// 共ににok」
3.10 動的メモリ確保
動的メモリ確保を?constexpr内で行う?
当初の式しか書けなかったconstexprから考えると変わったな、ってなる
コンパイル時に確保したメモリ領域はコンパイル時の中で閉じていないといけない
一瞬、コンパイル時に閉じていれば動的メモリ確保したアドレスへのポインタをconstexpr関数の外に引き渡せるのかなと思ったけど、ヒープ領域を導入しているわけではないとのことなのでダメそう
4.テンプレート
4.1 autoによる関数テンプレートの簡易定義
template<~>と書かなくても仮引数の型をautoで宣言することで関数テンプレートを定義できるようになった
4.2 typenameの省略
X<U>::YとしたときにYが型名なのか静的メンバ変数なのかの区別がつかないので、明示的にtypenameを付けて型名であることを示していた
typename X<U>::Y
typename不要な例外ケースが一部あったが、さらにtypenameを省略できるケースが増えた
4.3 クラス型の非型テンプレート引数
次回ここから
お悩み雑談室