Regarding move semantics and containers:
I know STL containers take advantage of move when the move operations are defined in the elements type. But how does it know if an element has defined move operations or not?
Why don't STL containers just invoke std::move() on the elements anyway, regardless of whether the element has defined the move operations or not? I'm asking this because I know you can invoke std::move() on objects even if its type does not define any move operations.
Thank you.