CPM external for a c++11 optional implementation