移动语义和initializer_list
在C中,一个initializer_list
考虑以下代码片段:
#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)); // Allowable? } }
答案:
不幸的是,将元素移出initializer_list
这种偏差源于以下事实:initializer_list
此限制背后的原因可能是允许编译器初始化initializer_list
尽管如此,已经提出了对 C 标准的拟议扩展解决此限制并允许initializer_list
以上是可以从 C `initializer_list` 中移动元素吗?的详细内容。更多信息请关注PHP中文网其他相关文章!