C++20 concepts are structural: What, why, and how to change it?
C++20 added concepts as a language feature.
They’re often compared to Haskell’s type classes, Rust’s traits or Swift’s protocols.
Yet there is one feature that sets them apart: types model C++ concepts automatically.
In Haskell, you need an instance, in Rust, you need an impl, and in Swift, you need...