Actuellement, je suis en utilisant le modèle de fonction suivante pour supprimer les avertissements variables inutilisées:Supprimer l'avertissement de variable inutilisée dans C++ => bug du compilateur ou bogue de code?
template<typename T>
void
unused(T const &) {
/* Do nothing. */
}
Cependant, lors du portage à cygwin de Linux, je reçois maintenant des erreurs du compilateur sur g ++ 3.4.4 (Sur linux je suis 3.4 0,6, alors peut-être cela est un bug fix):
Write.cpp: In member function `void* Write::initReadWrite()':
Write.cpp:516: error: invalid initialization of reference of type 'const volatile bool&' from expression of type 'volatile bool'
../../src/common/Assert.h:27: error: in passing argument 1 of `void unused(const T&) [with T = volatile bool]'
make[1]: *** [ARCH.cygwin/release/Write.o] Error 1
L'argument utilisé est une variable membre déclaré:
volatile bool readWriteActivated;
est-e est un bug de compilateur ou un bug dans mon code?
Voici le cas de test minimal:
template<typename T>
void unused(T const &) { }
int main() {
volatile bool x = false;
unused(!x); // type of "!x" is bool
}
Je ne peux pas reproduire le problème. Pouvez-vous poster du code qui reproduit le problème. –
WilliamKF - Pourquoi avez-vous accepté une réponse que vous indiquez clairement ne résout pas votre problème? – Tom