我写的是具有以下职能的类似集装箱类别:
Iterator begin(){
return Iterator(data_.begin(), 1);
}
ConstIterator begin() const{
return ConstIterator(data_.begin(), 1);
}
我认为,我可以发挥一项职能,以取代:
template <typename itr0, typename itr1>
itr0 begin(){
return itr1(data_.begin(), 1);
}
并且当我称之为“以下”时,该守则是在汇编时间时产生的:
Iterator it = foo.begin<Iterator, Iterator>();
ConstIterator it = foo.begin<ConstIterator const?, ConstIterator>();
我的第一个问题是,究竟是什么类型的名称?
其次,这是否有助于使这种美术在课外透明? i.e. 我仍可使用以下代码,以标准方式写成。
C foo;
const C foo2;
Iterator it = foo.begin();
ConstIterator it = foo2.begin();