In template metaprogramming, we may write something like ~~~~~ template <typename A, typename B> struct BetterType { typedef If<(Priority<A>::value > Priority<B>::value), A, B>::type type; }; ~~~~~ However, GCC -Wenum-compare (enabled by default) would complain at each POT of BetterType. It seems annoying. Of course we can cast the operands of compare to int. But should we make GCC more clever and not to complain this causal idiom? -- Xi Ruoyao <ryxi@xxxxxxxxxxxxxxxxx> School of Aerospace Science and Technology, Xidian University