has_<member_fucntion> trait