Étant donné le code ci-dessous, y a-t-il une meilleure façon de le corriger qui ne répète pas deux fois typename std::iterator_traits<T>::iterator_category
?Ne pas répéter les types utilisés comme paramètres de gabarit
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
>
{}
Merci. Cela semble tellement évident rétrospectivement. – Jon
@Jon: Heureusement, il suffit de l'apprendre une fois. :) – GManNickG