Spec-Zone.ru › GCC 8

7.10 C++ Концепции

C++ концепции обеспечивают значительно улучшенную поддержку обобщенного программирования. В частности, они позволяют указать ограничения на аргументы шаблонов. Эти ограничения используются для расширения обычных возможностей перегрузки и частичной специализации языка, позволяя обобщенным структурам данных и алгоритмам «уточняться» на основе их свойств, а не имен типов.

Следующие ключевые слова зарезервированы для концепций.

assumes

Заявляет выражение как предположение и, если возможно, проверяет, что предположение верно. Например, assume(n > 0).

axiom

Вводит определение аксиомы. Аксиомы вводят требования к значениям.

forall

Вводит универсально квантифицированный объект в аксиоме. Например, forall (int n) n + 0 == n).

concept

Вводит определение концепции. Концепции — это набор синтаксических и семантических требований к типам и их значениям.

requires

Вводит ограничения на аргументы шаблонов или требования к членной функции шаблона класса.

Передняя часть также предоставляет ряд внутренних механизмов, которые могут быть использованы для упрощения написания признаков типов. Обратите внимание, что некоторые из этих признаков, вероятно, будут удалены в будущем.

__is_same (type1, type2)

Двоичный признак типа: true, когда аргументы типа одинаковы.

© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-8.5.0/gcc/C_002b_002b-Concepts.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API