Better C++!! type support