PrintEx based objects are using the global overload instead of their built in methods. Check is_base_of for correct functionality.
Also when streaming a char it is printed as ascii values, not the actual char. Currently they are forced through OStream.h#L84 and the correct overload is here: OStream.h#L108.
However, SFINAE removes the correct overload because T does not meet the requirement of !is_fundamental<T>::value. An exception needs to be made for char's
PrintEx based objects are using the global overload instead of their built in methods. Check is_base_of for correct functionality.
Also when streaming a
char
it is printed as ascii values, not the actual char. Currently they are forced through OStream.h#L84 and the correct overload is here: OStream.h#L108.However, SFINAE removes the correct overload because
T
does not meet the requirement of!is_fundamental<T>::value
. An exception needs to be made forchar
's