it is safe to use c++11 feature auto and decltype

since the minimal supported gcc version 4.4.7 that comes with centos6 have auto and decltype support