c++11 attempt