|  | Home | Libraries | People | FAQ | More | 
        For the major operations addition, subtraction, intersection
        of icl containers and for symmetric
        difference inplace operators
        += |=,
        -=, &=
        and ^= are provided.
      
For every inplace operator
T& operator o= (T& object, const P& operand)
the icl provides corresponding infix operators.
T operator o (T object, const P& operand){ return object o= operand; } T operator o (const P& operand, T object){ return object o= operand; }
        From this implementation of the infix operator
        o the compiler will hopefully use
        return value optimization (RVO)
        creating no temporary object and performing one copy of the first argument
        object.
      
| ![[Caution]](../../../../../../doc/src/images/caution.png) | Caution | 
|---|---|
| 
          Compared to the inplace  | 
Use infix operators only, if
o= as a copy anyway.
        operators o
      
        The time complexity of all infix operators of the icl
        is biased by the extra copy of the object
        argument. So all infix operators
        o are at least linear
        in n =
        object.iterative_size().
        Taking this into account, the complexities of all infix operators can be
        determined from the corresponding inplace operators
        o=
        they depend on.