2015-04-01から1ヶ月間の記事一覧
2020-08-13追記:C++17で言語仕様が調整され、constexpr関数であってもnoexceptは特別扱いされなくなった。詳細は c++ - `noexcept` behavior of `constexpr` functions - Stack Overflow 参照のこと。定数式(constant expression)中で呼び出すconstexpr関数…
C++においてタプル型に格納された可変個の値を、関数呼び出しの実引数などに展開するイディオム。C++14標準ライブラリでは同イディオムをサポートするstd::index_sequence, std::make_index_sequenceが提供される。 // C++14以降 #include <utility> #include <tuple> templa</tuple></utility>…
型Tを値保持するクラステンプレートにおいて(pair, tupleなど)、型Tコンストラクタの explicit 性を継承するイディオム。「ある型Uからの暗黙型変換を許可するか否か」という性質を、型Tをラップするクラステンプレートへと引き継ぐ。2018-06-09追記:C++2…
C/C++標準ライブラリで2点間距離 (x1,y1) - (x2,y2) を計算する方法。C99以降またはC++11以降では、sqrt関数の他にhypot関数も利用できる。*1 #include <cmath> // C++98 double dist = std::sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1)); // C++11以降 do</cmath>…