【发布时间】:2020-03-29 12:57:59
【问题描述】:
我有一个模板化运算符作为类成员:
struct A {
template <bool s=true> auto operator[](int ) {}
};
我以以下(相当繁琐)的方式指定模板参数:
int main() {
A s;
s.template operator[]<false>(1);
}
这种方式破坏了使用运算符的“美感”(除了使用模板化运算符可能不是最佳实践之外;我在代码中使用它来获得有条件的 const 返回类型而无需重新实现逻辑并仅在 at 实现内部使用模板)。
是否有更简洁的表示法来指定模板参数?
【问题讨论】:
标签: c++ templates operator-overloading