当用operator[](int)
和operator[](std::vector<int>)
重载方括号运算符,并使用同时具有B::public A()
和bool
的类std::vector<int>
的实例时,我正在处理歧义问题A()
类型转换运算符已定义(问题在于布尔类型转换,可以将其隐式转换为int,从而造成歧义)。
由于布尔类型转换运算符是从B()
继承而来的,因此有没有办法在std::vector
的定义中将其定义为私有?
上下文:
我正在重载存储容器类(围绕B
的简单包装器),而bool
是一个“比较器”类,它按值比较容器,并且可以将其转换为简单的容器用于批量比较的std::vector<int>
值,或用于true
值的索引位置的if(mat1=mat2) {}
。这使我俩都可以执行简单的批量比较,例如mat1[mat1==14] = // ...
以及将索引掩码应用于我的容器,例如MIN()
。