Ограничения и концепты — теперь в составе языка C++

Будущее мчится навстречу… Возможности языка C++, представленные нами на весенних лекциях в «Технопарке@Mail.Ru» как находящиеся в разработке, официально оформлены технической спецификацией (англ. Technical Specification, TS) Международная организации по стандартам (ISO). Речь идет о новом шаге в развитии системы типов языка C++ — так называемых концептах и ограничениях (англ. concepts & constraints).

Важность предложенных нововведений столь велика, что, перефразируя Вольтера, хочется воскликнуть: «Если языка C++15 нет, его бы следовало придумать!»

Дело в том, что 53-страничная спецификация ISO/IEC TS 19217:2015Information technology — Programming languages — C++ Extensions for concepts определяет два новых фундаментальных понятия:

  • ограничение, определяющее требования к аргументам шаблонов, которые могут оказаться востребованы для выбора наиболее подходящей функции-кандидата при перегрузке, а также в ходе специализации шаблонов, и
  • концепт — именованное множество таких требований, которое является предикатом, вычисляемым на этапе компиляции, и становится частью интерфейса шаблона, в рамках которого и выступает ограничением.

Спецификация опубликована 15 ноября 2015 г. Она доступна для скачивания как PDF-файл; ее стоимость определена на уровне 178 CHF. Представляя бесспорный интерес для евангелистов языка C++ и разработчиков компиляторов, спецификации имеют шансы на включение в перспективный стандарт C++17.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google photo

Для комментария используется ваша учётная запись Google. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.