/Zc:hiddenFriend
(Применение правил скрытого друга C++ уровня "Стандартный")
Указывает, что компилятор соответствует стандартному лечению скрытых функций или шаблонов функций C++.
Синтаксис
/Zc:hiddenFriend
[-
]
Замечания
Параметр /Zc:hiddenFriend
включает подмножество /permissive-
поведения параметра. Он сообщает компилятору соответствовать стандарту скрытых друзей. Компилятор включает только скрытых друзей в поиске, зависящем от аргументов (ADL) для явных экземпляров или параметров шаблона включающего типа класса. Ограничение позволяет использовать скрытых друзей для поддержания операций с типом от применения к неявным преобразованиям. Этот параметр может повысить скорость сборки в коде, который не может использовать /permissive-
в противном случае.
Скрытый friend
друг — это шаблон функции или функции, объявленный только в определении шаблона класса или класса. По умолчанию компилятор Microsoft C++ не удаляет скрытые объявления друзей в качестве кандидатов для разрешения перегрузки везде, где он должен. Это устаревшее поведение может замедлить компилятор, включив скрытые функции друга как возможные кандидаты в большем контексте.
Стандартное поведение скрытых друзей C++ включено по умолчанию /permissive-
в разделе . Чтобы указать устаревшее поведение скрытого друга при /permissive-
указании параметра, используйте /Zc:hiddenFriend-
. Использование модулей C++20 требует стандартного скрытого поведения друга.
Этот /Zc:hiddenFriend
параметр доступен начиная с Visual Studio 2019 версии 16.4.
Примеры поведения компилятора при указании /Zc:hiddenFriend
см . в правилах поиска скрытых друзей.
Установка данного параметра компилятора в среде разработки Visual Studio
Откройте диалоговое окно Страницы свойств проекта. Подробнее см. в статье Настройка компилятора C++ и свойства сборки в Visual Studio.
Перейдите на страницу свойств Свойства конфигурации>C/C++>Командная строка.
Измените свойство "Дополнительные параметры", чтобы включить
/Zc:hiddenFriend
или/Zc:hiddenFriend-
нажмите кнопку "ОК".