Получение указателя на конец массива

Я использую следующий шаблон для получения указателя, указывающего после последнего элемента массива:

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));
13
задан fredoverflow 21 January 2011 в 13:02
поделиться