使用する利点は何boost::any_range
ですか?次に例を示します。
typedef boost::any_range<
int
, boost::forward_traversal_tag
, int
, std::ptrdiff_t
> integer_range;
void display_integers(const integer_range& rng)
{
boost::copy(rng,
std::ostream_iterator<int>(std::cout, ","));
std::cout << std::endl;
}
int main(){
std::vector<int> input{ ... };
std::list<int> input2{ ... };
display_integers(input);
display_integers(input2);
}
ただし、ForwardRangeの概念を満たすテンプレートパラメータを使用すると、より効率的な同じ機能を実現できます。
template <class ForwardRange>
void display_integers(const ForwardRange& rng)
{
boost::copy(rng,
std::ostream_iterator<int>(std::cout, ","));
std::cout << std::endl;
}
したがって、any_rangeを使用する価値があるシナリオを探しています。多分私は何かが欠けています。