关于以下模板功能,这是一个关于
this question代码的无关问题.
template <class T> class Object : public Container { public: T& object; Object(const T& obj) : object(obj) {} };
template <class T> void Array::add_element(const T& element) { vec.push_back(new Object<T>(element)); }
Array array; int i = 3; array.add_element(i);
我得到一个编译器警告:错误:类型’int&’的引用的无效初始化从“const int”类型的表达式.
这是什么?我传递一个int,不应该自动变成一个const int&为了我?为什么编译器抱怨?