// // any.h // program_args // // Created by Sam Jaffe on 2/25/23. // #pragma once #include namespace program::detail { class Any { public: Any() = default; template Any(T const * ptr) : type_(typeid(T)), ptr_(ptr) {} template T const * get() const { if (type_ != typeid(T)) { return nullptr; } return static_cast(ptr_); } private: std::type_index type_ = typeid(void); void const * ptr_ = nullptr; }; }