এই কোডটি বিবেচনা করুন:
void foo()
{
goto bar;
int x = 0;
bar: ;
}
জিসিসি এবং ক্ল্যাং এটিকে প্রত্যাখ্যান করে , কারণ bar:পরিবর্তনশীল সূচনাটিকে বাইপাস করে। এমএসভিসি মোটেও অভিযোগ করে না ( সতর্কতার কারণ হিসাবে ব্যবহার xকরা বাদে bar:)।
আমরা একটি দিয়ে একই জিনিস করতে পারি switch:
void foo()
{
switch (0)
{
int x = 0;
case 0: ;
}
}
এখন তিনটি সংকলক ত্রুটি নির্গত করে ।
এই স্নিপেটগুলি কি গঠনযুক্ত? বা তারা ইউবি সৃষ্টি করে?
আমি ভাবতাম যে দু'জনই দুর্বল, তবে আমি স্ট্যান্ডার্ডের উদ্ভাসিত অংশগুলি খুঁজে পাই না। [stmt.goto] এ সম্পর্কে কিছুই বলে না এবং [stmt.select ] ও করে না ।
/permissive-এমএসভিসিতে পতাকা যুক্ত করুন এবং এটিও অভিযোগ করবে। আমি জানি না যে পতাকাটি ব্যতীত এমএসভিসির আচরণটি সঠিকভাবে সংজ্ঞায়িত হয়েছে কিনা (আমি তা ধরে নেব, নইলে তারা কেন এটি অনুমতি দেবে?)।
xলাফ দেওয়ার পরে ব্যবহার করেন তবে বিষয়টি আরও তুচ্ছ ।