Spec-Zone.ru › CMake 3.24

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.

Примечание

Если уровень стандартного режима компилятора не ниже, чем запрашиваемая функция, 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

Цикл for по диапазону, определённый в N2930.

cxx_raw_string_literals

Строковые литералы без форматирования, определённые в N2442.

cxx_reference_qualified_functions

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

cxx_right_angle_brackets

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

cxx_rvalue_references

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

Spec-Zone.ru

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