Templates and generic programming
T.43
Предпочитайте `using` вместо `typedef` для определения псевдонимов
Причина
Улучшение читаемости: при использовании using новое имя стоит на первом месте, а не оказывается где-то в глубине объявления. Универсальность: using можно использовать для псевдонимов шаблонов, а typedef — не может. Единообразие: using синтаксически схоже с auto.
Пример
typedef int (*PFI)(int); // OK, но запутанно
using PFI2 = int (*)(int); // OK, предпочтительно
template<typename T>
typedef int (*PFT)(T); // ошибка
template<typename T>
using PFT2 = int (*)(T); // OK
Контроль
- Помечать использование
typedef. Это даст много «срабатываний» :-(