相关疑难解决方法(0)

为什么std :: transform和类似的'for'循环增量转换为(void)?

(void) ++__result以下代码的目的是什么?

std :: transform的实现:

// std::transform
template <class _InputIterator, class _OutputIterator, class _UnaryOperation>
inline _LIBCPP_INLINE_VISIBILITY
_OutputIterator
transform(_InputIterator __first, _InputIterator __last, _OutputIterator __result, _UnaryOperation __op)
{
    for (; __first != __last; ++__first, (void) ++__result)
        *__result = __op(*__first);
    return __result;
}
Run Code Online (Sandbox Code Playgroud)

c++

75
推荐指数
2
解决办法
2070
查看次数

for循环中两个逗号分隔语句之间的原因(void)

以下代码来自cppreference.comstd::lexicographical_compare上的实现示例:

template<class InputIt1, class InputIt2>
bool lexicographical_compare(InputIt1 first1, InputIt1 last1,
                             InputIt2 first2, InputIt2 last2)
{
    for ( ; (first1 != last1) && (first2 != last2); ++first1, (void) ++first2 ) {
        if (*first1 < *first2) return true;
        if (*first2 < *first1) return false;
    }
    return (first1 == last1) && (first2 != last2);
}
Run Code Online (Sandbox Code Playgroud)

为什么(void)循环中有一个,没有把它放在那里会有什么后果?

c++ for-loop comma void c++11

15
推荐指数
2
解决办法
830
查看次数

标签 统计

c++ ×2

c++11 ×1

comma ×1

for-loop ×1

void ×1