c++ meta programming facilities, need c++ 11