// note: this adds modifiers "backwards" (it is mainly used by the generator) public CppType Modify (CppModifiers modifier) { CppType newType = this; var newModifier = new CppModifiers [] { modifier }; if (newType.internalModifiers != null) newType.internalModifiers.AddFirst (newModifier); else newType.internalModifiers = new List<CppModifiers> (newModifier); return newType; }
public CppType Subtract (CppModifiers modifier) { CppType newType = this; newType.internalModifiers = new List<CppModifiers> (((IEnumerable<CppModifiers>)newType.Modifiers).Reverse ().WithoutFirst (modifier)); return newType; }