hash_tuple should be used not std::hash