tiny callback for cpp 98/03, there are lots of projects can not use c++11