support c++ function pointers