Sdílet prostřednictvím


/Zc:hiddenFriend (Vynucení skrytých pravidel skrytého přítele standardu C++)

Určuje, že kompilátor odpovídá standardnímu zpracování skrytých přátelských funkcí nebo šablon funkcí jazyka C++.

Syntaxe

/Zc:hiddenFriend[-]

Poznámky

Tato /Zc:hiddenFriend možnost povolí podmnožinu /permissive- chování možnosti. Říká kompilátoru, aby odpovídal standardu pro skryté přátele. Kompilátor obsahuje pouze skryté přátele ve vyhledávání závislém na argumentu (ADL) pro explicitní instance nebo parametry šablony nadřazeného typu třídy. Omezení umožňuje používat skryté přátele k zachování operací na typu, aby se použily na implicitní převody. Tato možnost může zlepšit rychlost sestavení v kódu, který jinak nemůže použít /permissive-.

Skrytý přítel je friend funkce nebo šablona funkce deklarovaná pouze v rámci definice šablony třídy nebo třídy. Kompilátor Jazyka Microsoft C++ ve výchozím nastavení neodebere skryté deklarace přítele jako kandidáty pro řešení přetížení všude tam, kde by měl. Toto starší chování může zpomalit kompilátor zahrnutím skrytých přátelských funkcí jako možných kandidátů do více kontextů.

Standardní chování skrytého přítele jazyka C++ je ve výchozím nastavení povoleno v části /permissive-. Chcete-li určit starší skryté chování přítele při /permissive- zadání možnosti, použijte /Zc:hiddenFriend-. Použití modulů C++20 vyžaduje standardní skryté chování přítele.

Tato /Zc:hiddenFriend možnost je dostupná od sady Visual Studio 2019 verze 16.4.

Příklady chování kompilátoru při zadání /Zc:hiddenFriendnaleznete v tématu Skryté pravidla vyhledávání názvu přítele.

Nastavení tohoto parametru kompilátoru ve vývojovém prostředí Visual Studio

  1. Otevřete dialogové okno Stránky vlastností projektu. Podrobnosti najdete v tématu Nastavení kompilátoru C++ a vlastností sestavení v sadě Visual Studio.

  2. Vyberte stránku vlastností příkazového řádku C/C++>Vlastnosti>konfigurace.

  3. Upravte vlastnost Další možnosti tak, aby zahrnovala /Zc:hiddenFriend nebo /Zc:hiddenFriend- a pak zvolte OK.

Viz také

/Zc (Shoda)
/permissive-