initial commit for 10029
accepted in C++11