如何擦除輸出迭代類型std::insert_iterator
和std::back_insert_iterator
?是否可以使用boost any_iterator
這樣做?型擦除C++輸出迭代
#include <boost/range.hpp>
#include <boost/range/detail/any_iterator.hpp>
#include <vector>
typedef boost::range_detail::any_iterator<
int, boost::incrementable_traversal_tag, int &, std::ptrdiff_t > It;
int main()
{
std::vector<int> v;
It outIt(v.begin()); // compiles
It inserter(std::back_inserter(v)); // does not compile
return 0;
}
你是什麼意思的「擦除類型」? –
@EitanT:你應該查看「C++類型的擦除」,但是對於一個簡短的定義「把具有通用接口的各種類型變成具有相同接口的一種類型的過程」。 Boost ::任何將是典型的例子。 –
@JesseGood Aaa我知道這是什麼,我從來不知道它被稱爲「類型擦除」。衛生署! –