add c++11 checking; use declype impl of result_of in boost