std::any
是 C++17 引入的一种通用类型包装,允许在运行时存储和检索任何类型的值。你可以将不同类型的值放入 std::any 对象中,然后在需要时检索出原始类型。
以下是使用 std::any
的基本用法:
-
使用
std::any
存储和检索自定义类型:#include <iostream> #include <any>class MyClass { public:MyClass(int value) : value_(value) {}int getValue() const {return value_;}private:int value_; };int main() {// 存储自定义类型std::any myClassValue = MyClass(42);// 检索并使用自定义类型try {const MyClass& retrievedValue = std::any_cast<const MyClass&>(myClassValue);std::cout << "MyClass value: " << retrievedValue.getValue() << std::endl;} catch (const std::bad_any_cast& e) {std::cout << "Exception: " << e.what() << std::endl;}ret