primo luogo, alcuni esempi:
È possibile controllare la diagnostica:
http://clang.llvm.org/docs/UsersManual.html#controlling-diagnostics-via-pragmas
E dallo stesso link:
clang supporta la Microsof t Funzione "#pragma pack
" per il controllo del layout dei record. GCC contiene anche il supporto per questa funzionalità, tuttavia, dove MSVC e GCC sono clang incompatibili segue la definizione MSVC.
clang supporta la funzionalità Microsoft #pragma comment(lib, "foo.lib")
per il collegamento automatico alla libreria specificata. Attualmente questa funzionalità funziona solo con il linker di Visual C++.
clang supporta la funzionalità Microsoft #pragma comment(linker, "/flag:foo")
per l'aggiunta di flag di linker ai file oggetto COFF. L'utente è responsabile di assicurare che il linker capisca le bandiere.
La seconda e la terza da tale elenco non si applicano al codice iOS, però.
Wikipedia [link] dice che clang supporta anche #pragma once
.
E, infine, ecco un link al clang API documentation per il codice pragma
maneggevolezza. Puoi navigare da lì per vedere tutto il resto. In particolare, TokenKinds.def descrive tutti i gettoni accettate, quindi presumibilmente è completa:
#pragma unused
#pragma GCC visibility [push/pop]
#pragma pack [value/show/push/pop/etc/etc/etc]
#pragma clang __debug parser_crash
#pragma clang __debug captured
#pragma ms_struct [on/off]
#pragma align [native/natural/mac68k/power/reset]
#pragma weak [identifier]
#pragma weak [identifier = identifier] // alias
#pragma redefine_extname [identifier identifier]
#pragma STDC FP_CONTRACT
#pragma OPENCL EXTENSION
#pragma omp [...]
#pragma detect_mismatch
#pragma comment
Il codice di analisi, trovato in ParsePragma.cpp
, sembra indicare che non tutti sono implementati, anche se il front-end accetta loro, comunque.
fonte
2013-06-13 14:47:55
Sarebbe divertente se qualcuno venisse qui e avesse pubblicato 500 parole chiave non documentate che funzionavano effettivamente :) – doge
Puoi fare cose come '// FIXME: alcuni testi che vuoi 'e' // TODO: qualcosa da fare' '# pragma once' – Popeye
Sì, ce ne sono altri, come '#pragma clang diagnostic ...' – Wain