improve usability with c++11 feature supported:
1.lambda callback function
2.member callback function