Revert #456

Revert #456 because it causes issues for known types (#495) and is not C++98-compatible.
3 files changed