2021-08-01 (日)
もう8月...時間が経つのが早すぎる気がする.結局,ワクチン接種したあと調子が悪くてこの週末何もできなかった……
C++のstd::numeric_limits
has_infinity=falseのとき,infinity()はコンパイルエラーにならずに無効な値が返るのか.VC++で,std::numeric_limits<int>::infinity()が0だった.
自分でnumeric_limits::max() とかを使うの,ほぼ確実に何らかの探索をするときに極端な初期値が欲しい場合なので,has_infinityならinfinityを,そうでないならmaxを返すやつがほしい.真面目にstd::numeric_limits<T>::has_infinity ? std::numeric_limits<T>::infinity() : std::numeric_limits<T>::max() みたいに書きたい気もするけど,面倒だし通常はmax()で良いか.あと,逆の場合はlowest()忘れててmin()使いそうになるのも困る.