пытаясь узнать больше о том, как фактически реализована стандартная библиотека, я просматриваю все контейнеры в visual studio.. Здесь я вижу какую-то любопытную структуру:
В некотором базовом классе a std::list<>
Найден следующий typedef
typedef typename _Alloc::template rebind<_Ty>::other _Alty;
Где "_Alloc" соответствует аргументу шаблона распределителя (и _Ty содержащемуся типу). Мне трудно найти хорошее объяснение этого "ключевого слова". Самое лучшее, что я нашел до сих пор, это то, что он является частью интерфейса распределителя. Хотя даже cppreference не очень хорошо объясняет это.
Что делает это template rebind<>
? И почему это необходимо в этом месте?