More intuitive numeric comparison rules.
Correct symbols visibility.

I can't mark an entire class with default visibility if it has any inline or template methods, because these methods will be marked as visible too. And when a user of the class will instantiate any of these methods, they will be exported by user's module.
So I should separately mark each exported method as visible.
Also this is the reason why I should define all methods of all my exceptions in *.cpp files, not in headers (because all exceptions should be marked as visible entirely).