virtual ChoiceCondition<T> *clone() const;
virtual bool can_merge(const Condition &, const CompoundCondition &) const;
virtual ChoiceCondition<T> *clone() const;
virtual bool can_merge(const Condition &, const CompoundCondition &) const;
{
if(dynamic_cast<const OrCondition *>(&parent) && !conditions.empty())
{
ChoiceCondition<T> *result = new ChoiceCondition<T>(std::vector<Type>());
{
if(dynamic_cast<const OrCondition *>(&parent) && !conditions.empty())
{
ChoiceCondition<T> *result = new ChoiceCondition<T>(std::vector<Type>());
for(typename std::vector<Type>::const_iterator j=v.begin(); j!=v.end(); ++j)
if(Msp::find(result->values, *j)==result->values.end())
result->values.push_back(*j);
for(typename std::vector<Type>::const_iterator j=v.begin(); j!=v.end(); ++j)
if(Msp::find(result->values, *j)==result->values.end())
result->values.push_back(*j);