В чем разница между typedef и using в C ++?


Ответ 1:

Нет разницы между созданием псевдонима типа с помощью typedef и созданием псевдонима типа с использованием. Тем не менее, использование является более мощным, так как его можно шаблонизировать (создавая так называемый шаблон псевдонима).

typedef int A; // Ok
используя B = int; // Ok

шаблон <класс T>
typedef std :: pair  TT; // ошибка
шаблон <класс T>
используя TT = std :: pair ; // Ok

С другой стороны, typedef позволяет вам объявлять несколько типов одновременно (не то, чтобы вы делали это часто):

// объявляет I псевдонимом для int,
// P - псевдоним для int *,
// и F - псевдоним для int (*) ()
typedef int I, * P, (* F) ();