Class templates, function templates (including generic lambdas), and other templated functions (typically members of class templates) might be associated with a constraint , which specifies the requirements on template arguments, which can be used to select the most appropriate function overloads and template specializations.