added c++ signature support