Devo includere alcune intestazioni originariamente scritte in C in un progetto C++. Nei file di intestazione viene utilizzato lo restrict
keyword, che causa un errore di sintassi per C++.Macro per la rimozione della parola chiave `restrict` durante la compilazione con C++
Sto cercando una macro di preprocessore che controlli se sto compilando con un compilatore C++ e rimuove la parola chiave restrict
in questo caso.
La definizione di 'restrict' to nothing è legale anche in C (poiché il preprocessore trasforma la sorgente prima che il compilatore C la veda), ma non sarebbe ciò che è inteso. –
@AlexeyFeldgendler è per questo che è avvolto con '#ifdef __cplusplus' ... – SomeWittyUsername
se si inserisce' # define' nel codice C++ prima di includere le intestazioni C (insieme con l'extern "C" {'di cui avrete bisogno), non avrai nemmeno bisogno di "# ifdef/# endif". Cerca di essere minimamente invasivo, cioè non modificare il tuo codice C perché qualcuno potrebbe provare a usare la lib in C++. Modificare invece il codice C++. –