c++ type set