নিচের কেসগুলো C++ স্ট্যান্ডার্ড অনুযায়ী Undefined Behaviour (UB) তৈরি করে, এগুলো থেকে সবসময় बचতে হয়:
- সাইনড ইন্টিজার ওভারফ্লো (Signed integer overflow)
- NULL পয়েন্টার, শূন্য-আকারের
newরিটার্ন করা পয়েন্টার, অনইনিশিয়ালাইজড পয়েন্টার, অ্যারে বাউন্ডের বাইরের পয়েন্টার ডিরেফারেন্স করা - স্কোপ বাইরে যাওয়া বা ডিলিট করা অবজেক্টের পয়েন্টার ব্যবহার করা (Dangling pointer)
- অ্যারে বাউন্ডের বাইরে পয়েন্টার এরিথমেটিক
- ইনকম্প্যাটিবল টাইপের পয়েন্টার কনভারশন
- নেগেটিভ অফসেটে অবজেক্ট/অ্যারে অ্যাক্সেস
- কনস্ট্রাক্টর/ডিস্ট্রাক্টর থেকে পিউর ভার্চুয়াল ফাংশন কল করা
- ভ্যালু-রিটার্নিং ফাংশন থেকে ভ্যালু রিটার্ন না করা
মনে রাখবেন: UB মানে প্রোগ্রাম যেকোনো আচরণ দেখাতে পারে - ক্র্যাশ, সাইলেন্ট ডেটা করাপশন, বা দেখায় যে সব ঠিকঠাক চলছে। কম্পাইলার UB ধরে অপ্টিমাইজেশন করতে পারে যা আশ্চর্য ফলাফল দেয়।