Trudności te, wraz z problemami związanymi z określeniem, co stanowi ten sam plik w obecności twardych linków, sieciowych systemów plików itp., dotąd uniemożliwiły standardyzację#pragma once. 

Zastosowanie makra chroniącego umożliwia zależnemu na rozpoznawanie i zareagowanie na różnice w semantyce lub interfejsach konkurencyjnych alternatyw. Na przykład,#include TLS_API_MACRO /* defined on the command line */

...

#if defined TLS_A_H ... use one known API #elif defined TLS_B_H ... use another known API #else #error "unrecognized TLS API" #endifW tym przypadku bezpośrednie określenie, który interfejs API jest dostępny, jest umożliwione przez to, że zawarty plik zadeklarował się za pomocą swojego makra chroniącego.

Dostępność Kompilator #pragma once Clang Obsługiwana Comeau C / C ++ Obsługiwana Cray C i C ++ Obsługiwana (od wersji 9.0) C ++ Builder XE3 Obsługiwana Digital Mars C ++ Obsługiwana} GCC Obsługiwana (oficjalnie od wersji 3.4) HP C / aC ++ Obsługiwana (od wersji A.06.12) IBM XL C / C ++ Obsługiwana (od wersji 13.1.1) Intel C ++ Compiler Nieobsługiwana Microsoft Visual C ++ Obsługiwana (od wersji 4.2) NVIDIA CUDA Kompilator Obsługiwana (w zależności od bazowego kompilatora hosta) Pelles C