Więc this example od: http://en.cppreference.com/w/cpp/utility/variant/visit deklaruje typ specjalistycznego:Co to jest typ Ta struktura dziedziczy po?
template<class... Ts> struct overloaded : Ts... { using Ts::operator()...; };
template<class... Ts> overloaded(Ts...) -> overloaded<Ts...>;
która jest skonstruowana jako wartość R tutaj:
std::visit(overloaded {
[](auto arg) { std::cout << arg << ' '; },
[](double arg) { std::cout << std::fixed << arg << ' '; },
[](const std::string& arg) { std::cout << std::quoted(arg) << ' '; },
}, v);
próbuję dowiedzieć się, jak to działa. Jaki typ dziedziczy tutaj overloaded
? Wygląda jak tablica lambd, ale nie widzę, jak to by miało operator()
. Czy ktoś może wyjaśnić, w jaki sposób działa tu dziedziczenie?
Jeśli masz ponad 10 tys. Widzisz, właśnie wypróbowałem to pytanie: https://stackoverflow.com/q/44414238/2642059 @BaummitAugen pomógł mi rozpoznać dziedziczenie. Więc myślę, że teraz zadaję właściwe pytanie. –