Псевдоним типа

Pause

Псевдоним типа (англ. type alias) — средство языка программирования C++, введённое в синтаксис стандарта C++11 для повышения удобства обращения к пользовательским и встроенным типам данных[1][2].

Вообще говоря в C++ новое имя типа можно продублировать следующими двумя способами[3]:

  • определение с помощью директивы typedef, которое часто называется typedef-объявлением,
  • определение с помощью директивы using, которое называется объявлением псевдонима.

Во всех случаях эта операция возможно только для уже определённого типа данных, так как при объявлении псевдонима он не определяет новый тип и не затрагивает свойства своего типа, а просто становится его синонимом для последующего применения в процессе разработки кода. Не существует значительной разницы между объявлением псевдонима типа и объявлением нового идентификатора с использованием спецификатора typedef[1]. Однако применение синтаксиса псевдонимов может повысить наглядность и читаемость кода, например при объявлении указателей на функции[4]:

typedef int (*FT)(char, double); // typedef-объявление типа указателей на функцию с двумя параметрами
using FT = int (*)(char, double); // объявление псевдонима для указателей на функцию с двумя параметрами

Кроме этого, в отличие от обычных typedef-объявлений псевдонимы типов могут быть параметризованы начиная с версии C++11[5].

Примечания

  1. ↑ 1 2 Type alias, alias template (since C++11) Архивная копия от 9 февраля 2019 на Wayback Machine cppreference.com
  2. ↑ Вандевурд, Джосаттис, Грегор, 2018, Псевдонимы типов, с. 71.
  3. ↑ Вандевурд, Джосаттис, Грегор, 2018, Псевдонимы типов, с. 72.
  4. ↑ Gregoire, 2014, Type Aliases, p. 297.
  5. ↑ Вандевурд, Джосаттис, Грегор, 2018, Шаблоны псевдонимов, с. 72.

Источники

  • Д. Вандевурд, Н. Джосаттис, Д. Грегор. Шаблоны C++. Справочник разработчика = C++ Templates. The Complete Guide. — 2-е. — СПб. : «Альфа-книга», 2018. — 848 с. — ISBN 978-5-9500296-8-4.
  • M. Gregoire. Professional C++. — 3. — John Wiley & Sons, Inc, 2014. — ISBN 978-1-118-85805-9.

Ссылки

Категории

Pause