Created
November 30, 2019 23:57
-
-
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.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#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; | |