ПК
Size: a a a
ПК
АК
АК
АР
АК
АР
АК
АР
АК
std::variant<Ts*...> arg;
(..ищем arg..)
return std::visit([](const auto* arg) { return F(*arg); }, arg)
Е
std::variant<Ts*...> arg;
(..ищем arg..)
return std::visit([](const auto* arg) { return F(*arg); }, arg)
АК
АР
АК
АР
АК
АР
АР
АК
template <class... Ts>
constexpr auto foo3(const Ts& ...ts) {
const void* arg = nullptr;
std::size_t(*visitor)(const void*) = nullptr;
((arg = &ts, visitor = [](const void* arg) { return F(*static_cast<const Ts*>(arg)); }, Predicate(ts)) || ...);
return visitor(arg);
}
АР