2022-02-01から1ヶ月間の記事一覧
C++20コンセプトでは制約式(constraint-expression)を&&(conjunction)/||(disjunction)で組み合わせることで複雑な制約式を表現できる。一方で制約式が多数の原始制約(atomic constraint)から構成されるケースでは、包摂関係(subsumption relation)判定のた…
C++20 RangeからC++17互換イテレータペアへの変換にはstd::views::commonレンジアダプタ(range adaptor)を利用する。ただしstd::ranges::basic_istream_viewなどムーブのみ/コピー不可なイテレータからなる一部Rangeは変換できない。*1 #include <sstream> #include <ranges></ranges></sstream>…
C++20言語仕様では、コンセプト定義に対して属性(attribute)を指定できない。 2024-08-13追記:本件はCWG 2428でC++20 DRとして修正され、コンセプト(concept)に対するdeprecated属性指定が許可される。属性指定位置に注意。 // OK: CWG 2428適用後 template <typename T></typename>…