Spec-Zone.ru › CMake 3.21

CMAKE_CXX_KNOWN_FEATURES

Новое в версии 3.1.

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

Возможности, перечисленные в этом глобальном свойстве, могут быть доступны компилятору C++. Если возможность доступна компилятору C++, она будет перечислена в переменной CMAKE_CXX_COMPILE_FEATURES.

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

Возможности, известные этой версии CMake, перечислены ниже.

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

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

cxx_std_98

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

cxx_std_11

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

cxx_std_14

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

cxx_std_17

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

cxx_std_20

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

cxx_std_23

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

Низкоуровневые отдельные возможности компиляции

Для 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

Ссылки на значения R-Value, как определено в 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–2021 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.21/prop_gbl/CMAKE_CXX_KNOWN_FEATURES.html

Spec-Zone.ru

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