c++11 friendly