yohhoyの日記

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

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

コンセプト制約式の構成:包摂関係 vs. コンパイル時間

C++

C++20コンセプトでは制約式(constraint-expression)を&&(conjunction)/||(disjunction)で組み合わせることで複雑な制約式を表現できる。一方で制約式が多数の原始制約(atomic constraint)から構成されるケースでは、包摂関係(subsumption relation)判定のた…

std::views::commonレンジアダプタの制約

C++20 RangeからC++17互換イテレータペアへの変換にはstd::views::commonレンジアダプタ(range adaptor)を利用する。ただしstd::ranges::basic_istream_viewなどムーブのみ/コピー不可なイテレータからなる一部Rangeは変換できない。*1 #include <sstream> #include <ranges></ranges></sstream>…

コンセプト定義への属性指定

C++

C++20言語仕様では、コンセプト定義に対して属性(attribute)を指定できない。 template <typename T> [[deprecated("concept")]] // NG: ill-formed concept C = /*...*/; // OK: 変数テンプレート template <typename T> [[deprecated("variable")]] T var = /*...*/; // OK: 関数テ</typename></typename>…