00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef HxBpoMulAssign_h
00012 #define HxBpoMulAssign_h
00013
00014 #include "HxTagList.h"
00015 #include "HxClassName.h"
00016 #include "HxScalarInt.h"
00017 #include "HxCategories.h"
00018
00019
00022 template<class DstValT, class SrcValT>
00023 struct HxBpoMulAssign
00024 {
00026 typedef HxTagTransInVar TransVarianceCategory;
00027
00028 typedef DstValT ArithType;
00029
00031 HxBpoMulAssign(HxTagList&)
00032 {}
00033
00035 void doIt(DstValT& x, const SrcValT& y)
00036 { x *= y; }
00037
00038 static DstValT neutralElement()
00039 { return DstValT(HxScalarInt(0)); }
00040
00042 static HxString className()
00043 { return HxString("mulAssign"); }
00044 };
00045
00046 #endif