The C++ standard library template type has one of two states. It could be empty (not contain anything), or it could contain a .
Suppose you start with an empty . How do you put a into it?
One of my colleagues tried to do it in what seemed to be the most natural way: Use the assignment operator.
Unfortunately, the assignment failed to compile...