C++模板有关问题

C++模板问题
下面是我写的队列类,使用模板的意图是储存我想要的数据,但是我所想要的数据的类型只能在入队的时候确定,其他时候都不能给模板一个参数列表。比如下面的两个函数,构造函数和入队函数,调用顺序肯定是构造函数先被调用,但是提示出错。
error C2955: 'quence' : use of class template requires template argument list
(类模板的使用需要模板的参数列表)
我如何能正确使用模板呢?
template <class elemtype>
class quence
{
public:
quence(int size=10);
elemtype get_head();//读队头元素

void de_quence();//删队

void en_quence();//入队

bool isempty();//判断队列是否为空

private:
void double_size();//扩大数组内存

elemtype *elem;

int front;//头

int rear;//后

int maxsize;//队列最大值
};

template <class elemtype>
void en_quence(elemtype &data)
{
rear=(rear+1)%maxsize;
elem[rear]=data;
}

template <class elemtype>
quence::quence(int size=10)
{
elem=new elemtype[size];

}

------解决方案--------------------
template <class elemtype>
void quence<elemtype>::en_quence(elemtype &data)
{
 rear=(rear+1)%maxsize;
 elem[rear]=data;
}

template <class elemtype>
quence<elemtype>::quence(int size=10)
{
 elem=new elemtype[size];
}


其他有没有问题不确定,至少得这样吧。。。
------解决方案--------------------
你这种需求使用 boost::any 就好了. 要自己做的话也可以参考它的实现来, 你这样实现的模板类是无法满足你的要求的.

C/C++ code

#include <boost/any.hpp>
#include <deque>
#include <string>

struct X {
    int x, y, z;
};

int main()
{
    std::deque<boost::any> dq;
    dq.push_back(10);
    dq.push_back(std::string("hello"));

    X x = {10, 20, 40};
    dq.push_back(x);
}