#include #include #include using namespace snplib; struct visitor { using types = std::tuple; void operator()(auto& v) { using val_t = std::decay_t; if constexpr (std::ranges::input_range) { std::println("range val = {}", v); } else { std::println("val = {}", v); } } }; int main() { HeterogenVec vec; vec.push(1.1); vec.push(std::string{"AAA"}); vec.push(100UL); vec.push(200UL); vec.push(300UL); std::vector v{'q', 'w', 'e'}; vec.emplace(std::from_range_t{}, v); vec.visit(visitor{}); vec.visitRange(visitor{}); vec.clear(); std::println("\n\tafter clear() ..."); vec.visit(visitor{}); return 0; }