братья, поделитесь "современным" ( в духе С++ 11/14) трюком —
мне надо в шаблонной функции ввести "ограничение" — категория итератора должна быть рэндом эксесс.
я сделал тупо:
........
template<class> struct invalid_iterator_category;
template<> struct invalid_iterator_category{};
template<class Iterator>
Iterator some_algorithm(Iterator first, Iterator last)
{
using category = typename std::iterator_category<Iterator>::iterator_category;
const invalid_iterator_category<category> dummy{};
(void)dummy;
.....
}
но, понятно, в современной библиотеке стандардной/в современном С++ должно быть что-то поудобнее. как это делается?