c++ requirement