C++11 template traits