std::vector<TString> GetKeysThatAreNotDuplicates(OrderedMap<TString, TString> &Defaults, OrderedMap<TString, TString> &Overrides) { std::vector<TString> result; std::vector<TString> overrideKeys = Overrides.GetKeys(); for (size_t index = 0; index < overrideKeys.size(); index++) { TString overridesKey = overrideKeys[index]; TString overridesValue; TString defaultValue; if ((Defaults.ContainsKey(overridesKey) == false) || (Defaults.GetValue(overridesKey, defaultValue) == true && Overrides.GetValue(overridesKey, overridesValue) == true && defaultValue != overridesValue)) { result.push_back(overridesKey); } } return result; }
std::vector<TString> GetKeysThatAreNotOverridesOfDefaultValues(OrderedMap<TString, TString> &Defaults, OrderedMap<TString, TString> &Overrides) { std::vector<TString> result; std::vector<TString> keys = Overrides.GetKeys(); for (unsigned int index = 0; index< keys.size(); index++) { TString key = keys[index]; if (Defaults.ContainsKey(key) == true) { try { TString value = Overrides[key]; Defaults[key] = value; } catch (std::out_of_range) { } } else { result.push_back(key); } } return result; }