++ Java. Java ( ). ++ . , - / . . , , , ( , ). , , . .
():
template<typename Iter>
typename std::iterator_traits<Iter>::value_type
sum(Iter begin, Iter end) {
typedef typename std::iterator_traits<Iter>::value_type vt;
vt accum = vt();
while (begin!=end) {
accum += *begin;
++begin;
}
return accum;
}
"" - . . , , ( , ), ( ). , , . (.. ForwardIterator) .
, "" "", . / , , . . , . , boost:: any boost:: function.
, (. " " ) (. "SFINAE" ). , googling ++, erasure, iterator. , ( ). , "" ().