Bonjour,
au boulot, j'ai un warning en Release sous Visual 2008 dans le code d'un template instancié avec une classe dérivée d'MFC.
Voici le warning :
Ce qu'en dit M$ : http://msdn.microsoft.com/en-us/libr...a3(VS.80).aspxCongesView.cpp
d:\(...)\EventHandler.h(42) : warning C4121: 'event::MemberEventHandler<R,ARG>' : alignment of a member was sensitive to packing
with
[
R=CCongesView,
ARG=const CacheConges &
]
d:\(...)\CongesView.h(201) : see reference to class template instantiation 'event::MemberEventHandler<R,ARG>' being compiled
with
[
R=CCongesView,
ARG=const CacheConges &
]
Une partie du code du template (pas de pragma pack nulle part dans cette petite lib) :
Une partie du code utilisant le template (pas de pragma pack la non plus) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 template <typename R, typename ARG = EventArg> class MemberEventHandler : public EventHandlerBase<ARG> { public: typedef void (R::*MemHandlerFun)( ARG ); private: MemHandlerFun handler_; R & receiver_; };
D'où vient ce warning et comment le virer ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 class CongesView: public CFormView { }; class CCongesView : public CongesView, public SaveE0, public LoadE0, public Description0 { event::MemberEventHandler<CCongesView, CacheConges const &> CacheCongesModifiedEventHandler; };
Partager