PropertyDescriptor removeProperty(PropertyDescriptorSeq& properties, const string& name) { string value; PropertyDescriptorSeq::iterator p = properties.begin(); while(p != properties.end()) { if(p->name == name) { value = p->value; p = properties.erase(p); } else { ++p; } } PropertyDescriptor desc; desc.name = name; desc.value = value; return desc; }