support c++11