Spec-Zone.ru › CMake

CMAKE_CXX_KNOWN_FEATURES

Добавлен в версии 3.1.

Список C++ функций, известных этой версии CMake.

Функции, перечисленные в этой глобальной свойства, могут быть доступны компилятору C++. Если функция доступна с помощью компилятора C++, она будет перечислена в переменной CMAKE_CXX_COMPILE_FEATURES.

Перечисленные здесь функции могут быть использованы с командой target_compile_features(). См. руководство cmake-compile-features(7) для информации о функциях компиляции и списке поддерживаемых компиляторов.

Функции, известные этой версии CMake, перечислены ниже.

Высокоуровневые мета-функции, указывающие на поддержку стандарта C++

Добавлен в версии 3.8.

Следующие мета-функции указывают на общую поддержку соответствующего языка стандарта. Это отражает заявленную компилятором поддержку языка, но не обязательно подразумевает полное соответствие этому стандарту.

cxx_std_98

Режим компилятора как минимум C++ 98.

cxx_std_11

Режим компилятора как минимум C++ 11.

cxx_std_14

Режим компилятора как минимум C++ 14.

cxx_std_17

Режим компилятора как минимум C++ 17.

cxx_std_20

Добавлен в версии 3.12.

Режим компилятора как минимум C++ 20.

cxx_std_23

Добавлен в версии 3.20.

Режим компилятора как минимум C++ 23.

cxx_std_26

Добавлен в версии 3.30.

Режим компилятора как минимум C++ 26.

Примечание

Если уровень по умолчанию для стандарта компилятора не ниже уровня запрошенной функции, CMake может опустить флаг -std=. Флаг все еще может быть добавлен, если режим расширений по умолчанию компилятора не соответствует свойству цели <LANG>_EXTENSIONS, или если свойство цели <LANG>_STANDARD установлено.

Низкоуровневые индивидуальные функции компиляции

Для C++ 11 и C++ 14 компиляторы иногда медленны в реализации определенных функций языка. CMake предоставлял отдельные функции компиляции, чтобы помочь проектам определить, доступны ли определенные функции. Эти отдельные функции сейчас менее актуальны, и проекты в целом должны предпочесть использовать высокоуровневые мета-функции. Отдельные функции компиляции не предоставляются для C++ 17 или более поздних версий.

См. руководство cmake-compile-features(7) для более подробного обсуждения использования отдельных функций компиляции.

Индивидуальные функции от C++ 98

cxx_template_template_parameters

Шаблоны шаблонов, как определено в ISO/IEC 14882:1998.

Индивидуальные функции от C++ 11

cxx_alias_templates

Псевдонимы шаблонов, как определено в N2258.

cxx_alignas

Управление выравниванием alignas, как определено в N2341.

cxx_alignof

Управление выравниванием alignof, как определено в N2341.

cxx_attributes

Общие атрибуты, как определено в N2761.

cxx_auto_type

Автоматическое выведение типов, как определено в N1984.

cxx_constexpr

Постоянные выражения, как определено в N2235.

cxx_decltype_incomplete_return_types

Decltype для неполных типов возвращаемых значений, как определено в N3276.

cxx_decltype

Decltype, как определено в N2343.

cxx_default_function_template_args

Значения по умолчанию для шаблонов функций, как определено в DR226

cxx_defaulted_functions

Функции по умолчанию, как определено в N2346.

cxx_defaulted_move_initializers

Инициализаторы перемещения по умолчанию, как определено в N3053.

cxx_delegating_constructors

Конструкторы-делегаты, как определено в N1986.

cxx_deleted_functions

Удаленные функции, как определено в N2346.

cxx_enum_forward_declarations

Декларации перечислений, как определено в N2764.

cxx_explicit_conversions

Операторы явного преобразования, как определено в N2437.

cxx_extended_friend_declarations

Расширенные объявления друзей, как определено в N1791.

cxx_extern_templates

Шаблоны extern, как определено в N1987.

cxx_final

Ключевое слово управления переопределением final, как определено в N2928, N3206 и N3272.

cxx_func_identifier

Предопределенный идентификатор __func__, как определено в N2340.

cxx_generalized_initializers

Инициализаторы списков, как определено в N2672.

cxx_inheriting_constructors

Наследование конструкторов, как определено в N2540.

cxx_inline_namespaces

Вложенные пространства имен, как определено в N2535.

cxx_lambdas

Функции лямбда, как определено в N2927.

cxx_local_type_template_args

Локальные и безымянные типы в качестве аргументов шаблонов, как определено в N2657.

cxx_long_long_type

Тип long long, как определено в N1811.

cxx_noexcept

Спецификации исключений, как определено в N3050.

cxx_nonstatic_member_init

Инициализация нестатических данных членов, как определено в N2756.

cxx_nullptr

Указатель null, как определено в N2431.

cxx_override

Ключевое слово управления переопределением override, как определено в N2928, N3206 и N3272.

cxx_range_for

Цикл for с диапазоном, как определено в N2930.

cxx_raw_string_literals

Символьные литералы сырых строк, как определено в N2442.

cxx_reference_qualified_functions

Функции с квалификатором ссылок, как определено в N2439.

cxx_right_angle_brackets

Разбор правой угловой скобки, как определено в N1757.

cxx_rvalue_references

Ссылки на значения правой части, как определено в N2118.

cxx_sizeof_member

Размер нестатических данных членов, как определено в N2253.

cxx_static_assert

Статическое утверждение, как определено в N1720.

cxx_strong_enums

Сильно типизированные перечисления, как определено в N2347.

cxx_thread_local

Переменные thread-local, как определено в N2659.

cxx_trailing_return_types

Автоматический тип возврата функции, как определено в N2541.

cxx_unicode_literals

Литералы строк Unicode, как определено в N2442.

cxx_uniform_initialization

Равномерная инициализация, как определено в N2640.

cxx_unrestricted_unions

Неограниченные объединения, как определено в N2544.

cxx_user_literals

Литералы, определённые пользователем, как определено в N2765.

cxx_variadic_macros

Макросы с переменным числом аргументов, как определено в N1653.

cxx_variadic_templates

Шаблоны с переменным числом аргументов, как определено в N2242.

Отдельные особенности из C++ 14

cxx_aggregate_default_initializers

Сводные значения по умолчанию для инициализаторов, как определено в N3605.

cxx_attribute_deprecated

Атрибут [[deprecated]], как определено в N3760.

cxx_binary_literals

Двоичные литералы, как определено в N3472.

cxx_contextual_conversions

Контекстные преобразования, как определено в N3323.

cxx_decltype_auto

Семантика decltype(auto), как определено в N3638.

cxx_digit_separators

Разделители цифр, как определено в N3781.

cxx_generic_lambdas

Обобщённые лямбда-выражения, как определено в N3649.

cxx_lambda_init_captures

Инициализированные лямбда-захваты, как определено в N3648.

cxx_relaxed_constexpr

Расслабленное constexpr, как определено в N3652.

cxx_return_type_deduction

Выведение типа возвращаемого значения для обычных функций, как определено в N3386.

cxx_variable_templates

Шаблоны переменных, как определено в N3651.

© 2000–2024 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/latest/prop_gbl/CMAKE_CXX_KNOWN_FEATURES.html

Spec-Zone.ru

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