2024/5/6(月)

勉強と実用を兼ねてvulkan specificationの和訳を始めた。著作権の観点で勝手に公開するとなんか怖そうなので、とりあえず非公開で個人的にやる。

当分はcpprefjpを読み進めるのでデイリーの作業リソースが取られるし、Vulkan入門も未だ書き終わっていないので、とりあえず気が向いたときに少しづつという形で進める。

何で書くか考えてmdbookというものを触ってみたのだが、割と良い。


cpprefjpを読み進めた。「インライン変数」から「__has_include」まで。

インライン変数

えー、こんなん出来たんだ。静的メンバ変数定義のためだけにソースファイル用意する必要ないじゃん。

アライメント指定されたデータの動的メモリ確保

アライメントが必要な場面では便利そう。本筋とは関係ないが、align_val_tで「こんなenum classの使い方ってありなんだ」と思った。

using宣言のパック展開

そもそもオブジェクトでなくクラスをパラメータパック展開する考えが無かった。確かにできる。それからメンバ関数を受け継ぐusingというものを恥ずかしながら知らなかった。今一つ仕様が分からない。

static_assert のメッセージ省略を許可

使ったことなかったので認知してなかった。そりゃ省略したいというかassertと同じ書き方で書きたい。

noexcept付きのラムダ式から変換する関数ポインタにnoexceptを付加する

「例外仕様を型システムの一部にする」が同じくC++17で追加されたのでそれと同期してということか。

if文とswitch文の条件式と初期化を分離

たまに使う。switch文でも使えるのは意識したことが無かった。

enum class変数の初期値として整数を指定する際の規則を調整

enum classのこういう使い方を知らなかったのでこれも初耳だったのだが、確かにこれは可能であってほしい。

constexpr ラムダ

できなかったのかそれまで。

constexpr if 文

なんか地味に色々すごい機能ということを聞く。

https://zenn.dev/catminusminus/articles/f9c033551b66dc

__has_include

えええええこんなの出来たの!???CMakeの記述とか頑張らずにC++コードだけでフォールバックとか視野に入るじゃん…

Categories: