. fun() ( ), . .
++ C:
for_each(vec.begin(), vec.end(), reinterpret_cast<void(*)(Type1&)>(fun));
static_cast :
for_each(vec.begin(), vec.end(), static_cast<void(*)(Type1&)>(fun));
.
, - , C-.
:
for_each<std::vector<A>::iterator, void(*)(Type1&)>(vec.begin(), vec.end(), fun);
- . , .