Просматривая код Microsoft STL (в частности, std::vector
), я наткнулся на следующие строки кода (нерелевантный код заменен на /* ... */
):
// CLASS TEMPLATE vector
template <class _Ty, class _Alloc = allocator<_Ty>>
class vector // varying size array of values
{
/* ... */
public:
/* ... */
using value_type = _Ty;
using allocator_type = _Alloc;
using pointer = typename _Alty_traits::pointer;
using const_pointer = typename _Alty_traits::const_pointer;
using reference = _Ty&;
using const_reference = const _Ty&;
using size_type = typename _Alty_traits::size_type;
using difference_type = typename _Alty_traits::difference_type;
/* ... */
};
Мне было интересно, почему здесь используется соглашение о присвоении псевдонима типа типу шаблона?
_Foo
. - person Jesper Juhl   schedule 26.07.2020