Мне разрешено перемещать элементы из 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?
}
}
Так как std::intializer_list<T>
требует особого внимания компилятора и не имеет семантики значения, как обычные контейнеры стандартной библиотеки С++, я бы предпочел быть в безопасности, чем сожалеть и спросить.