Basics
Type Deduction
Variadic Template
Recursion example:
Fold Expression example:
auto returned type (C++ 14)
auto as function parameters(c++20) & Concepts
Since C++20, we can use concepts to specify what we want with the template we defined.
auto 相較於傳統的 template,給了我們更多自由,但同時也會造成 ambiguity,所以需要配合 Concepts 去限制它。
下面的例子中,若不使用 HasPushBack
,就會造成 ambiguity,compiler 會不知道該 call 哪一個 add function。
配合 constexpr(compile-time if)以上的 code 可以進一步改寫成:
Reference