Я использую следующий шаблон для получения указателя, указывающего после последнего элемента массива:
template <typename T, size_t n>
T* end_of(T (&array)[n])
{
return array + n;
}
Теперь я, кажется, помню, что была какая-то проблема с этим подходом, но я не могу вспомнить, что это было. Я считаю, что у него было что-то с выбором параметров типа или параметров функции, но я не уверен. Так что, как проверка здравого смысла, вы видите какие-либо проблемы с вышеуказанным кодом? Малый тест использования:
int test[] = {11, 19, 5, 17, 7, 3, 13, 2};
std::sort(test, end_of(test));