我想使用该range-v3
库来提供对类的容器成员的访问。应该有一个可变的以及const
访问。然而,编译下面的类会导致编译器错误。如果我将该const
方法注释掉,编译器就没有什么可抱怨的了:
error: no match for ‘operator|’ (operand types are ‘const std::vector<SomeType> {aka const std::vector<SomeType, std::allocator<SomeType> >}’ and ‘ranges::v3::view::const_fn’)
这里有什么问题?
class A
{
public:
auto all() {
return m_container
| ranges::view::all_fn();
}
const auto all() const {
return m_container
| ranges::view::const_fn();
}
private:
std::vector<SomeType> m_container
};