Как именно можно написать конечную функцию для шаблонного класса, названного Stack, который реализован с использованием массива, чтобы выйти за пределы массива?
Это мой текущий конец ()function:
template<typename T>
StackIterator<T> Stack<T>::end() const
{
//iterator takes a stack and an item of type <T>
StackIterator<T> goodBye(*this, items[-1]);
return goodBye;
}//end end function
Эта текущая реализация будет работать для примитивных типов, но выдает bad_alloc в ячейку памяти (...) при использовании со строками.
Есть идеи, как сделать это более универсальным?