`std::variant<Types...>` (C++17) là gì? Khác `union` thế nào? · ORA·tech