てがみ: qatacri at protonmail.com | 統計 | 2020

202028200

いまさらながら C++20 に range library が入ると知る。

On Iteration | Executive Summary
Range Library Proposal
Chapter 1. Oven 1.00.1
GitHub - ericniebler/range-v3: Range library for C++14/17/20, basis for C++20's std::ranges

あまり歴史的経緯は知らないけれど、初期の試みから 15 年くらい経っているようだ。まあ当時は auto も lambda も move semantics の言語サポートもないから、実用的に使うのは辛かったと思う。 Concepts も同じく初期の提案から 15 年くらい経っているのかな (Concepts Lite は 2013)。検索していてたまたま気づいたが、すっぽすっぽ先生はあと 3 日で 70 歳である

Constraints and concepts (since C++20) - cppreference.com
std::same_as - cppreference.com

same_as の定義なんだこれ。 is_same_v<T, U> かつ !is_same_v<U, T> の場合なんてあるんだっけ…。

c++ - Why does same_as concept check type equality twice? - Stack Overflow
Constraints and concepts (since C++20) - cppreference.com

Atomic constraints という概念があるらしい。関数オーバーロードで制約を満たす関数が複数あるとき、より特殊化されている方を選べるように、ちょっとした (?) 仕掛けがある。