Definition checking is the ability of a compiler to validate a class or function definition against requirements specified on template parameters.
Definition checking gives compiler the ability to prevent a C++ template from using operations that are not specified in the requirements on the type parameters. This feature is not supported by C++20 concepts.