On Wednesday 24 September 2003 1:44 pm, Andre Poenitz wrote: > On Wed, Sep 24, 2003 at 02:29:44PM +0000, Angus Leeming wrote: > > Which doesn't help us much... > > What why do you need that vector?
I guess I don't ;-) Angus namespace { template <typename T, typename Enum> void clearIfNotFound(T & data, Enum value, vector<Enum> const & ids) { typename vector<Enum>::const_iterator it = ids.begin(); typename vector<Enum>::const_iterator end = ids.end(); it = std::find(it, end, value); if (it == end) data = T(); } } // namespace anon void InsetExternal::Params::settemplate(string const & name) { templatename_ = name; ExternalTemplateManager & etm = ExternalTemplateManager::get(); ExternalTemplate const * et = etm.getTemplateByName(name); if (!et) // Be safe. Don't lose data. return; // Ascertain which transforms the template supports. // Empty all those that it doesn't. clearIfNotFound(rotationdata, ExternalTemplate::Rotate, et->transformIds); // clearIfNotFound(resizedata, ExternalTemplate::Resize, et->transformIds); // clearIfNotFound(clipdata, ExternalTemplate::Clip, et->transformIds); clearIfNotFound(extradata_, ExternalTemplate::Extra, et->transformIds); }