The following code example is taken from the book
C++20 - The Complete Guide
by Nicolai M. Josuttis,
Leanpub, 2021
The code is licensed under a
Creative Commons Attribution 4.0 International License.
// raw code
#include <iostream>
#include <string_view>
auto createToCall(auto op, auto... args)
{
return [op, ...args = std::move(args)] () -> decltype(auto) {
return op(args...);
};
}
void printWithGAndNoG(std::string_view s)
{
std::cout << s << "g " << s << '\n';
}
int main()
{
auto printHero = createToCall(printWithGAndNoG, "Zhan");
//...
printHero();
}