lower gcc version requirement for functional and type_traits