Rename template parameters to improve readability
Make rtti and exception settings global
Add missing return value
Add test executable using gtest