page = arthur o'dwyer – stuff mostly about c++
url = https://quuxplusone.github.io/blog
and
concepts llvm metaprogramming
A lot of templates in the C++ standard library are specified with Constraints: elements, which means that the library vendor must ensure that they drop out of overload resolution when their constraints are not met — but the Standard does not mandate any particular mechanism by which the vendor must implement that dropping-out. Two possible mechanisms are SFINAE using
std::enable_if
, and adding C++20 constraints using the
keyword.