Learning c++ traits for useful struff