C++之std::any

std::any 是 C++17 引入的一种通用类型包装,允许在运行时存储和检索任何类型的值。你可以将不同类型的值放入 std::any 对象中,然后在需要时检索出原始类型。

以下是使用 std::any 的基本用法:

  1. 使用 std::any 存储和检索自定义类型:

    #include 
    #include 
    
    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

你可能感兴趣的:(C++,c++,开发语言)