SmartTricks
需要C++17
myPrint
template <typename... Args>
void myPrint(Args &&...args)
{
(std::cout << ... << std::forward<Args>(args)) << '\n';
}
myPushBack
template<typename T, typename... Args>
void myPushBack(vector<T>& v, Args&&... args) {
(v.push_back(args), ...); // (1)
}
需要C++20
自定义 Overload关键字
template<typename ... Ts>
struct Overload : Ts ... {
using Ts::operator()