Skip to content

Instantly share code, notes, and snippets.

@modocache
Created November 30, 2019 23:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save modocache/77b8ac09280c08bd88f84b92ff43a28b to your computer and use it in GitHub Desktop.
Save modocache/77b8ac09280c08bd88f84b92ff43a28b to your computer and use it in GitHub Desktop.
Each additional instantiation of 'foo' in 'example.cpp' adds ~3 seconds of compile time. Each additional instantiation in 'example-outlined.cpp', on the other hand, adds an additional 0.01 seconds.
This file has been truncated, but you can view the full file.
#include <string>
#include <iostream>
void bar_prologue_outlined() {
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
}
void bar_epilogue_outlined() {
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
}
template <typename RetTy, typename ParamTy> RetTy bar(ParamTy x) {
bar_prologue_outlined();
std::cout << x << std::endl;
bar_epilogue_outlined();
return x + 10;
}
void foo_prologue_outlined() {
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std::cout << bar<int, float>(1) << std::endl;
std::cout << bar<float, int>(1) << std::endl;
std::cout << bar<int, double>(1) << std::endl;
std::cout << bar<double, int>(1) << std::endl;
std::cout << [](int a, float b) -> int {
return a * 10 + b * 5;
}(1, 2.f) << std::endl;
std::cout << [](int a, float b, double c) -> auto {
return [a, b, c](const std::string &d) -> int {
std::cout << d << std::endl;
return a * 2 + std::stoi(d) * 4 + b + c;
}("6");
}(3, 4.f, 5.0) << std::endl;
std::cout << bar<int, int>(1) << std::endl;
std:
View raw

(Sorry about that, but we can’t show files that are this big right now.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment