Use iosfwd with forward declarations.
Remove unneeded include.
Fix return types.

Temporary values should be returned by value in C++11.