在这里,文档描述了使用传递给其构造函数的 lambda 创建函子的机制。lambdas 将存储在哪里?它是通过自动编码在课堂上的某个地方吗?那你可以访问它们吗?我的意思不是电话,而是指针或链接。lambda 有一个未命名的 autogentype,事实证明 T::operator() 不能通过限定名称访问......
template<typename... Ts>
struct Overloader : Ts...
{
using Ts::operator()...; // exposes operator() from every base
};
template<typename... T>
Overloader(T...) -> Overloader<T...>; // C++17 deduction guide, not needed in C++20
int main()
{
auto o = Overloader{ [] (auto const& a) {std::cout << a;},
[] (float f) {std::cout << std::setprecision(3) << f;} };
}