Switched to C++11, using type traits.