yohhoyの日記

技術的メモをしていきたい日記

2023-02-01から1ヶ月間の記事一覧

ヌル終端文字列のstd::hash計算

C++

C++標準ライブラリのハッシュ計算ファンクタstd::hashを用いてヌル終端文字列のハッシュ計算を行う場合、ポインタ型に対するstd::hash<const char*>特殊化ではなくstd::hash<std::string_view>特殊化を用いる。*1下記コードにあるh0では、“文字列” からではなくアドレス値からハッシュ計算さ</std::string_view></const>…

static_assert(false, "was wrong");

C++

プログラミング言語C++におけるconstexpr if文とstatic_assert宣言の組合せに関するメモ。2023年2月会合にてstatic_assert(false)を許容するP2593R1がCWG 2518へと統合され*1、C++言語仕様に対するDefect Reportとして遡及適用される。*2CWG 2518適用前のC++…

std::monostateのハッシュ値

C++標準ライブラリの直和データ型std::variant<...>と組み合わせて空の状態を表すstd::monostateオブジェクトでは、std::hashによるハッシュ計算がサポートされる。*1各C++処理系で算出されるハッシュ値の一覧(括弧内は併記コメント/定数名): GCC: -7777…

TemplateParam = void

C++ライブラリのクラステンプレート設計で見られる、型テンプレートパラメータへのvoidデフォルト指定に関するメモ。 template<class T = void> class SomeClass; C++2b(C++23)標準ライブラリ時点では、下記パターンでの用法が存在する。 デフォルトvoid型:std::enable_if(</class>…