我有一个带有私有通用vector
的简单模板类,我想公开begin
和end
迭代器(为了在std:accumulate
中使用这些类之外的那些)
我试图像这样实现它:
#include <vector>
template <typename T>
class MyClass
{
public:
std::vector<T, std::allocator<T>>::iterator begin() { return m_data.begin(); }
std::vector<T, std::allocator<T>>::iterator end() { return m_data.end(); }
//...
private:
std::vector<T> m_data;
//...
};
但似乎我做错了,因为它没有编译和报告:
C2146: syntax error : missing ';' before identifier 'begin'
C4430: missing type specifier - int assumed. Note: C++ does not support default-int
C2146: syntax error : missing ';' before identifier 'begin'
C4430: missing type specifier - int assumed. Note: C++ does not support default-int
这对我来说完全没有意义,你能否指出begin
如何被曝光?