c++11/14 friendly