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)を指定できない。 2024-08-13追記:本件はCWG 2428でC++20 DRとして修正され、コンセプト(concept)に対するdeprecated属性指定が許可される。属性指定位置に注意。 // OK: CWG 2428適用後 template <typename T></typename>…