我已经定义了operator[](size_t)
,它会在编译时返回警告。
警告:返回对临时[-Wreturn-local-addr]的引用 T const& operator [](std :: size_t i)const {return(* m_dataRef)[i];}
请注意,我使用的是gcc 4.8.4。
我的代码如下所示:
template <class T>
class Property<std::vector<T> >
{
public:
Property(std::vector<T>* dataRef);
~Property() {}
// Return a const ref to make sure no one can modify the data via this function.
T const & operator[](std::size_t i) const {return (*m_dataRef)[i];}
protected:
std::vector<T> * m_dataRef;
};
返回的引用不是暂时的,或者是?知道我能做些什么来解决这个问题吗?