我正在尝试使用模板重载operator[]
,以便可以选择返回什么类型。简化示例:
class A
{
uint8_t buff[10];
public:
template<typename T>
T operator[] (uint var)
{
return (T)buff[var];
}
};
现在,我希望能够执行以下操作:
abc<uint16_t>[5]; // Clearly not allowed
abc.operator[]<uint16_t>(5); // This works but it's stupid
问题:是否可以这样重载运算符[]?如果没有,正确的方法是什么?