c++ functional
add c++ functional