1. 2
  1. 1

    It’s interesting to read that in the context of C++20. Concepts address a lot of the type checking problem: if you use concepts, then you don’t have the deferred type checking problem, your code is guaranteed to work with any template instantiation that matches the concept definition. A lot of the comparisons to Lisp macros are now addressed via constexpr and constinit functions: they look exactly like normal functions but are evaluated at compile time.