// Given two variants, which are maps merge the properties from v2 into v1 that // don't already exist in v1. void variant_map_merge(variant& v1, const variant& v2) { std::map<variant, variant>::const_iterator v2it = v2.as_map().begin(); std::map<variant, variant>::const_iterator v2end = v2.as_map().end(); while(v2it != v2end) { std::map<variant, variant>::const_iterator v1it = v1.as_map().find(v2it->first); if(v1it == v1.as_map().end()) { v1.add_attr(v2it->first, v2it->second); } v2it++; } }