带有模板的重载运算符[]

时间:2019-08-22 12:40:42

标签: c++ templates operator-overloading

我正在尝试使用模板重载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

问题:是否可以这样重载运算符[]?如果没有,正确的方法是什么?

0 个答案:

没有答案