2011-09-29 2 views
1

I définipassant ENUM python boost en tant que paramètre

enum_<mytype>("mytype") 
    .value("one",1) 
    .value("two",2) 
; 

dans mon BOOST_PYTHON_MODULE.

quand j'expose une classe avec une fonction qui prend un paramètre de type montype (essentiellement, un int), comme:

void myfunc(mytype m) { 
    ... 
} 

Je reçois l'avertissement du compilateur suivant:

pointeur déréférencement « p 0,2311' (ou autre) ne casse des règles strictes aliasing

maintenant, il est juste un avertissement, et le code fonctionne parfaitement avec l'optimisation ..

permis

puis-je ignorer l'avertissement en toute sécurité? est-ce que je manque quelque chose?

Merci

Répondre

1

Il est difficile de dire exactement sans voir l'avertissement, mais il est très probablement causé par some macros from Python headers. Pour être sûr, compilez le code qui utilise Python (et Boost.Python) avec -fno-strict-aliasing.

Questions connexes