কম্পিউটার টিউটোরিয়াল

C++-এ ইন্টিজার ওভারফ্লো (Integer Overflow) সনাক্ত করা

ইন্টিজার ওভারফ্লো সনাক্ত করার একমাত্র নিরাপদ উপায়: ওভারফ্লো হওয়ার আগেই চেক করা।

আনসাইনড ইন্টিজার অ্যাডিশনে ওভারফ্লো চেক

unsigned int x, y;
unsigned int value = x + y;
bool overflow = value < x; // অথবা value < y

লজিক: যদি দুটি আনসাইনড ইন্টিজার যোগ করলে ওভারফ্লো হয়, তবে রেজাল্ট যেকোনো একটি অপারেন্ড থেকে ছোট হবে (র‍্যাপ-অরাউন্ডের কারণে)।

অন্যান্য পদ্ধতি (স্ট্যান্ডার্ড নয়)

  • CPU-এর ওভারফ্লো ফ্ল্যাগ এক্সেস করা (কিছু কম্পাইলার সাপোর্ট করে, যেমন GCC-র __builtin_add_overflow)
  • সাইনড ইন্টিজারের জন্য: if (a > 0 && b > INT_MAX - a) ওভারফ্লো

সুপারিশ: C++20-এ <numbers> হেডার এবং std::add_sat (স্যাচুরেটিং অ্যাড) ইত্যাদি আসছে। বর্তমানে __builtin_*_overflow (GCC/Clang) সবচেয়ে ভালো।

  1. OpenCV-এ C++ ব্যবহার করে রিয়েল-টাইম মানুষের চেহারা সনাক্ত করা

  2. OpenCV-এ C++ ব্যবহার করে সবচেয়ে বড় চেহারা সনাক্ত করা

  3. OpenCV-এ C++ ব্যবহার করে স্টিল ছবিতে চেহারা সনাক্ত করা

  4. OpenCV-এ C++ ব্যবহার করে রঙ সনাক্ত করা