c++ std::Any 用法

c++ std::Any 用法
据说std::Any能存任意值测试下Test1.h:#pragma once void testAny(void);Test1.cpp:#include Test1.h #include any #include string #include iostream void testAny(void) { std::any a 9527; std::cout a: *(std::any_castint(a)) std::endl; // 这里转化为指针再解引用 int b std::any_castint(a); // 直接值传递 std::cout b: b std::endl; std::any c std::string(日月之行若出其中星汉灿烂若出其里。); a \n; a c; auto p std::any_caststd::string(a); // 为了取值做类型转化 p是指针. 如果类型不匹配转化失败 p为nullptr std::cout a: *p std::endl; if (a.has_value()) { std::cout a 类型 a.type().name() std::endl; } a.reset(); if (a.has_value()) { std::cout a 有值 std::endl; } else { std::cout a 没有值了释放了。 std::endl; } }运行ok. 据说any不能存引用类型其他都可以存。