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.| en.cppreference.com
Intro to variadic templates and complications when function overloading isn't available| azeemba.com
In this blog we will explore one change the MSVC compiler has implemented in an effort to improve the codegen quality of applications in debug mode. We will highlight what the change does, and how it could be extended for the future. If debug performance is something you care about for your C++ projects, then […]| C++ Team Blog
Suppose you need to have a variadic function and want to add all arguments together. Before C++17, you need two pseudo-recursive functions: template auto add(H head, T... tail) { return head + add(tail...); } template auto add(H head) { return head; } However, C++17 added fold expressions, making it a one-liner: template auto add(H head, T... tail) { return (head + ... + tail); // expands to: head + tail[0] + tail[1] + ... } If we’re willing to abuse operator evaluation rules and fold ex...| www.foonathan.net