gpt4 book ai didi

c++ - GCC 标准库实现中(void)强制转换的目的是什么?

转载 作者:行者123 更新时间:2023-12-03 20:22:49 25 4
gpt4 key购买 nike

在执行 std::ranges::transform在 GCC 的 stdlibc++ 中,为什么 for循环迭代器增量有 (void) throw ?

for (; __first1 != __last1 && __first2 != __last2;
++__first1, (void)++__first2, ++__result)

最佳答案

这是因为在 C++ 中它是 possible to overload the comma operator .直到今天,我仍然不知道这样做的好处,但现在这并不重要。重要的一点是它是可能的。
显式 void cast 可以防止意外调用重载运算符带来的意外副作用,以及不需要的结果。请注意如何单个 void cast 有效地防止了左侧和右侧的逗号运算符被调用。

关于c++ - GCC 标准库实现中(void)强制转换的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67904143/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com