作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个模板化的运算符作为类成员:
struct A {
template <bool s=true> auto operator[](int ) {}
};
int main() {
A s;
s.template operator[]<false>(1);
}
at
实现内部使用模板)。
最佳答案
您可以将传递的参数包装在可以推断的模板类中,有点像标签调度:
template<bool s>
struct A_index { // A shorter name based on your use case
int i;
};
struct A {
template<bool s> auto operator[](A_index<s> i_) {
int i = i_.i;
// Use `i`
}
auto operator[](int i) { (*this)[A_index<true>{ i }]; } // For your default = true
};
int main() {
A s;
s[A_index<false>{1}];
using t = A_index<true>;
s[t{0}];
}
A&
的帮助模板结构。结构具有模板参数的引用:
struct A {
};
template<bool s = true>
struct A_index {
A& a;
auto operator[](int i) { }
};
int main() {
A s;
A_index<false> view{ s };
view[1];
}
关于c++ - 如何为模板化运算符指定模板参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60914638/
我是一名优秀的程序员,十分优秀!