У меня есть класс Array
, который определяет внутренний класс const_iterator
внутреннее определение метода класса вне класса шаблона
template <class T, int SIZE = 100>
class Array
{
// my class here
public:
class const_iterator
{
// my class here
};
void insert(const_iterator position, int value);
};
template <class T, int SIZE /*= 100*/>
void Array<T, SIZE>::insert(const_iterator position, int value)
{
// impl
}
Является ли это нормальным, что за пределами класса я определил функцию и использовали const_iterator position
в качестве первого аргумента тип вместо того, чтобы писать typename Array<T, SIZE>::const_iterator position
? Является ли это стандартным? Что делать, если есть класс const_iterator
вне класса Array
?
В отличие от того, что вы, кажется, предлагаете, это не имеет ничего общего с шаблонами, то же правило будет применяться для не templated класса. – Holt