Pour exemple de code donné:Garantie de copie avant de
struct some_struct_t {
std::string key;
// other fields;
}
std::unordered_map<std::string, TSomeStruct> hashmap;
some_struct_t some_struct;
// filling some_struct
hashmap[some_struct.key] = std::move(some_struct);
est-il une garantie que some_struct.key
sera obtenu comme une clé pour hashmap
avant déplacer some_struct
en hashmap
?
Cette réponse ne prend pas en compte les deux nuances importantes de ce code, à savoir que l'évaluation de ces appels de fonction est _sequenced_, et que ce n'est pas le 'std :: move' qui fait le déplacement (sinon vous _ potentiellement avoir un problème). En tant que tel, ce n'est pas vraiment une réponse à la question. –