enumclass PhysicalCategory { // why not just use 'void' ...? why enum type?
None = 0, // what?? no type ?? what is comma ',' means ?
Monster = (1 << 0), // what?? what is ( 1<< 0) ?
Misile = (1 << 1),
All = PhysicalCategory::Monster | PhysicalCategory::Misile
// what is going on? what '|' means?
};
My question is with '//' comment ...
Sorry for many questions ..
Besides that this is an enum Class as mentioned there's nothing confusing about any of that code. The symbols are all just basic C++ operators. If you don't understand them go study them: http://www.cplusplus.com/doc/tutorial/operators/