我正在尝试编写两个模板函数。它们必须简单地返回对局部变量的引用。但它不起作用:
class Cube_cache_value {
public:
//...
template<>
QVector<unsigned short>& get_buffer<unsigned short>() { return vector; } // error here
template<>
QVector<float>& get_buffer<float>() { return float_vector; }
private:
QVector<unsigned short> vector;
QVector<float> float_vector;
};
错误:非命名空间范围“类 hsp::Cube_cache_value”中的显式特化
然后我试图让函数超出类范围,但编译器仍然不喜欢它:
class Cube_cache_value {
public:
//...
inline QVector<unsigned short>& get_buffer() { return vector; }
inline QVector<float>& get_float_buffer() { return float_vector; }
private:
QVector<unsigned short> vector;
QVector<float> float_vector;
};
template<>
QVector<unsigned short>& get_buffer<unsigned short>(Cube_cache_value* v) { //error here
return v->get_buffer();
}
template<>
QVector<float>& get_buffer<float>(Cube_cache_value* v) { return v->get_float_buffer(); }
错误:“<”标记之前的预期初始化程序
请更正我的代码。