Quick A: No, because the contents are const
.
A classic from SO, recommended by a developer team that encountered this situation again in the past week:
initializer_list and move semantics
Am I allowed to move elements out of a
std::initializer_list<T>
?#include <initializer_list> #include <utility> template<typename T> void foo(std::initializer_list<T> list) { for (auto it = list.begin(); it != list.end(); ++it) { bar(std::move(*it)); // kosher? } }
Since
std::intializer_list<T>
requires special compiler attention and does not have value semantics like normal containers of the C++ standard library, I'd rather be safe than sorry and ask.
Add a Comment
Comments are closed.