我想知道,如果有一種方法可以在編譯時檢查一些迭代器類型的T是否是const_iterator,或者不是。迭代器和常量迭代器之間的迭代器定義的類型(value_type,pointer,...)有區別嗎?如何檢測類型是否是迭代器或const_iterator
我想實現這樣的事情:
的作品至少在GCCtypedef std::vector<int> T;
is_const_iterator<T::iterator>::value // is false
is_const_iterator<T::const_iterator>::value // is true
最近是否只是我或者社區上漲缺乏? :(+1你說它的工作,它看起來不錯 – 2011-03-24 18:36:04
我選擇了你的答案,因爲你的解決方案使用std :: iterator_traits <>類 – 2011-03-24 19:28:50
當'std :: iterator_traits :: pointer'是一個代理類的類型,但是如果有解決方案的話,就必須使用一些非常令人討厭的SFINAE – aschepler 2011-03-24 20:18:12