gcc print all warnings
add overload << operator and print functions