虽然 C++ 基本上是一种静态类型语言,在编译时检查数据类型,但它提供了实现一定程度动态类型的机制。这涉及在运行时确定变量的数据类型,主要通过使用 void* 指针(可以指向任何数据类型,需要显式类型转换)和 std::any 类(C17 引入)来实现,后者是一个类型安全的容器,能够保存任何类型的值。这两种方法都提供了灵活性,但由于潜在的运行时开销和类型相关错误,需要仔细考虑。
void*
std::any