下面的代碼來自於std::lexicographical_compare
實現例如在cppreference.com:爲什麼(無效),兩者之間用逗號分隔的語句在for循環
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);
}
爲什麼會出現在迴路中的(void)
,以及會產生什麼沒有把它放在那裏的後果?
有人計劃在++ ++ first1之前加上'(void)',因爲++ ++ first1,(void)++ first2'仍然可以實例化一些'operator,'在某處聲明,這可能仍然會造成麻煩。 – cpplearner
@cpplearner有人,是吧? –