原始指针但现代方式

Par*_*ori 0 c++ c++11 c++14 c++17

我的项目中必须有一个语义堆栈,它将在其中保存多种类型。
我的目标是让我的项目使用现代 C++。
拥有任何类型的堆栈的正确方法是什么?
java 中的等效版本是Stack<Object>.
其中哪些是正确的?

  1. 使用void*并将其转换为我想要的类型。
  2. 类似于 1 但使用一些智能指针。(我不知道什么)

eer*_*ika 5

  1. std::any用于存储任何类型的对象(可能存在限制)。

然而,存储任何类型的整个设计很少是理想的。通常,最好使用可变参数模板来完全在编译时保持多态性,或者仅具有有限的类型集 ( std::variant),甚至使用 OOP 层次结构。哪个更合适取决于用例。