Я хочу знать, есть ли разница между двумя указателями (как членами данных) в классе шаблона. Например:
template <typename E>
class Link
{
private:
E element;
Link* a;
Link<E>* b;
};
Интересно? "Является ли" a "аналогичным" b "?
Ответ 1
Обе формы действительны. Когда имя шаблона класса используется внутри рамки шаблона класса без аргументов шаблона, оно разрешает имя "текущей" специализации шаблона.
a и b имеют a и тот же тип.
Это то же правило, что позволяет нам писать, например: