← index
cplusplus2x.Examples/C++20/lambda/lambda.cpp
Source: cplusplus2x.Examples/C++20/lambda/lambda.cpp
#include <iostream>
#include <string>

template <typename F>
void Fill(F func) {
    func(0);
    func("test");
    func(13.4);
    func(25.2f);
}

int main() {
    auto test = []<typename T>(const T &type) { std::cout << "template typename: " << type << "\n"; };
    Fill(test);
    Fill([](const auto &t) {
        if constexpr (std::is_same<decltype(t), const float &>::value) {
            std::cout << "filtered out floating point: " << t << "\n";
            return;
        }
        std::cout << "auto: " << t << "\n";
    });
    return 0;
}