我想添加一個運算符[]來boost :: filtered_range類。 有我的代碼:boost :: filtered_range的引用類型的值
template <typename TPredicate, typename TRange>
class my_filtered_range : public boost::filtered_range<TPredicate, TRange>
{
public:
my_filtered_range(TPredicate Predicate, TRange &Range) : boost::filtered_range<TPredicate, TRange>(Predicate, Range)
{
}
size_t size() const
{
return std::distance(begin(), end());
}
???? &operator[](size_t Index) const
{
assert(Index < size());
auto It = begin();
std::advance(It, Index);
return *It;
}
};
的問題是什麼類型的返回類型使用操作符[]? 規範'value_type'不允許在'const'容器中使用類,「decltype(* begin())」不能用我的VC++ 2013編譯。
你是否在'尾隨返回類型中'decltype'嘗試'自動'? – Kiroxas 2014-10-16 15:01:15