Код: Выделить всё
template
class Vector { // general vector type
T* v;
int sz;
public:
…
};
< /code>
template
class Vector : private Vector { // partial specialization
public:
using Base = Vector;
Vector() {}
explicit Vector(int i) : Base(i) {}
T*& elem(int i) { return reinterpret_cast(Base::elem(i));
T*& operator[](int i) { return reinterpret_cast(Base::operator[](i)); }
};
< /code>
Затем он пишет (на стр. 733, прямо перед §25.3.1): < /p>
Варианты метода использования Однократное представление времени < /strong> для значений ряд типов и навсегда навстречу (STATIC), чтобы они использовались в соответствии с их использованием, что они использовались в соответствии с их использованием. Erasure .
Я не уверен, что полностью понимаю выбор терминологии, в частности, часть, которую я выделял жирным шрифтом: я понимаю, что function , база :: operator []
Подробнее здесь: https://stackoverflow.com/questions/797 ... -descripti