具有通用/模板化变量的STL容器

Dan*_*oof 3 c++ generics variables stack templates

我只想做以下事情:

template <typename T>
class gvar {
private:
    T var;
public:
    gvar(T var) : var(var) {}
};

std::stack<gvar> some_stack;
Run Code Online (Sandbox Code Playgroud)

g ++吐出了关于gvar不是一个类型的各种错误.这可以通过一些相对简单的方式实现吗?我不想使用boost :: any/boost :: variant.

编辑:

澄清我想要的东西:

一个std :: stack,可以保存不同类型的变量(只是原语很好).

GMa*_*ckG 7

因为gvar它不是一个类型,所以它是一个类型模板.您需要为其指定模板参数:

std::stack< gvar<int> > some_stack;
Run Code Online (Sandbox Code Playgroud)


Ste*_*ard 5

您必须实例化模板类或以其他方式处理此模板.例如,您可以制作一个std::stack<gvar<int> >,或者您可以尝试使用Boost :: Any等解决方案.