accepted ITP1_2_C in c++11