use const return type
use const return type
add specializers for char type since stream semantics are different
more robust tests
remove const on return type in favor of no warnings