Improved c++ support