मेरी कोड के आधार पर cppcheck Ran और निम्न त्रुटि प्राप्त:मैं 'std :: deque' पर ऑपरेटर <का उपयोग क्यों नहीं कर सकता?
Dangerous iterator comparison using operator< on 'std::deque'.
लेकिन एक Deque के इटरेटर एक यादृच्छिक अभिगम इटरेटर है, और रैंडम एक्सेस iterators असमानता ऑपरेटरों समर्थन करते हैं। तो क्या देता है?
उदाहरण:
#include <deque>
int main()
{
std::deque<int> d;
std::deque<int>::iterator di1 = d.begin();
std::deque<int>::iterator di2 = d.end();
if (di1 < di2)
{
// (error) Dangerous iterator comparison using operator< on 'std::deque'.
}
return 0;
}
संपादित करें: इस बग प्रस्तुत और cppcheck ticket #5926 के माध्यम से तय हुई थी।
सुनिश्चित करें कि आप एक ही कंटेनर से दो iterators तुलना कर रहे हैं सुनिश्चित करें। मुझे नहीं पता कि इसमें कितनी दूर cppcheck जाता है, इसलिए यह हमेशा उस संभावना के कारण शिकायत कर सकता है। – ghostofstandardspast
कृपया इस त्रुटि को ट्रिगर करने वाली रेखा दिखाएं। – dasblinkenlight
हमें प्रश्न कोड –