निम्नलिखित कोड cppreference.com पर std::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);
}
क्यों है वहाँ पाश में एक (void)
, और क्या होगा इसे वहां नहीं डालने का नतीजा?
कोई '++ पहले 1' से पहले' (शून्य) 'जोड़ने की योजना बना रहा है क्योंकि '++ first1, (शून्य) ++ first2' अभी भी कुछ' ऑपरेटर 'को तुरंत चालू कर सकता है, जिसे कहीं भी घोषित किया गया है, जो अभी भी परेशानी का कारण बन सकता है। – cpplearner
@cpplearner कोई, हुह? –