C++20 concepts are structural: What, why, and how to change it?--Jonathan Müller

Flexibility.

C++20 concepts are structural: What, why, and how to change it?

by Jonathan Müller

From the article:

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 an extension. But in C++? In C++, concepts are just fancy boolean predicates that check for well-formed syntax: every type that makes the syntax well-formed passes the predicate and thus models the concepts.

This was the correct choice, but is sometimes not what you want. Let’s explore it further.

Add a Comment

Comments are closed.

Comments (0)

There are currently no comments on this entry.