C++11 Pattern Template Library