http://en.cppreference.com/w/cpp/memory/uninitialized_copy std::uninitialized_copy
的示例代码
包含一个以:
for (; first != last; ++first, (void) ++current)
其中,(void)
的目的是什么?
没有它,似乎工作得很好。
答案 0 :(得分:4)
你“必须”在通用代码中执行此操作,因为从技术上讲,允许用户为其迭代器类重载operator,
以执行奇怪的操作。演员阵容可以防止发现和应用过载。
答案 1 :(得分:4)
标准库算法保证不会调用除算法之外的任何用户功能。如果没有丢弃值的强制转换,循环将调用用户定义的重载逗号运算符。
请参阅LWG issue 2133进行讨论。