鑑於下面的代碼是否有更好的方法來糾正它,而不是重複typename std::iterator_traits<T>::iterator_category
兩次?不重複用作模板參數的類型
template<class T, class T2>
struct foo :
bar<
foo<T, T2>, typename
std::conditional<
std::is_same<typename
std::iterator_traits<T>::iterator_category, //Repeated
std::random_access_iterator_tag
>::value,
std::bidirectional_iterator_tag, typename
std::iterator_traits<T>::iterator_category //Repeated
>::type
>
{}
謝謝。回想起來似乎很明顯。 – Jon 2010-10-29 15:56:19
@Jon:幸運的是,你只需要學習一次。 :) – GManNickG 2010-10-29 15:58:11