Мне интересно, есть ли способ проверить во время компиляции, является ли тип T некоторого типа итератора const_iterator или нет. есть ли разница в типах, определяемых итераторами (тип_значения, указатель, ...) между итераторами и константными итераторами?
Я бы хотел добиться примерно следующего:
typedef std::vector<int> T;
is_const_iterator<T::iterator>::value // is false
is_const_iterator<T::const_iterator>::value // is true