我正在将一大块代码从gcc移植到Visual Studio 2013.以下代码示例在gcc 4.4上工作正常(!),但在VS2013上编译begin()并end()失败:
错误C2440:'':无法从'unsigned char*'转换为'std :: _ Vector_const_iterator >>'
class foo {
unsigned char* value;
int length;
std::vector<unsigned char>::const_iterator begin();
std::vector<unsigned char>::const_iterator end();
};
std::vector<unsigned char>::const_iterator foo::begin() {
return std::vector<unsigned char>::const_iterator(value);
}
std::vector<unsigned char>::const_iterator foo::end() {
return std::vector<unsigned char>::const_iterator(value + length);
}
Run Code Online (Sandbox Code Playgroud)
鉴于我不想重写整个事物,是否有可行的方法来创建这些const_iterators?