Spec-Zone.ru › CMake 3.29

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.25.

Режим компилятора — как минимум 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

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

cxx_override

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

cxx_range_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

Переменные, локальные для потока, как определено в N2659.

cxx_trailing_return_types

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

cxx_unicode_literals

Литералы строк Юникода, как определено в 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/v3.29/prop_gbl/CMAKE_CXX_KNOWN_FEATURES.html

Spec-Zone.ru

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