سؤال

بالطبع، يجب معاملة تحذير، ولكن لماذا هو VC ++ C4150. (حذف المؤشر إلى نوع غير مكتمل) فقط تحذير؟

هل كانت مفيدة؟

المحلول

لأن القياسية تقول إنها قانونية، رغم أنه خطير: 5.3.5

إذا كان الكائن الذي يتم حذفه يحتوي على نوع فئة غير مكتملة عند نقطة الحذف والفئة الكاملة لها دعامات غير تافهة أو وظيفة تخصيص، فإن السلوك غير محدد.

نصائح أخرى

يمكنك الحصول على هذا التحذير نتيجة لإعلان الأمام. لذلك اعترف مترجم بأنه هيكل / فئة، ولكن غير متأكد من استدعاء الديمقراطية.

الشعور بالتحذير الأكثر أهمية يهتم بالمرور الثاني لتحليل التعليمات البرمجية من قبل MSVC. عندما يتم حل الطبقة الأخيرة المحول البرمجي قد اتخاذ قرار إذا كان المدمر موجود.

إنها قانونية في C ++، على الرغم من أنها غالبا ما تكون فكرة سيئة.

تقريبا، مستوى التحذير 1 من "قد تفاجأ، لكنني تجاهلت ما قلته هناك" نوع، وبعض العبارات المختارة حيث يكون الكود الذي تم إنشاؤه غير صحيح للغاية ويعرض عرضة للغاية.

لذلك WL 2 مناسب، لأنه قانوني وفي العديد من السيناريوهات موافق تماما لحذف نوع غير مكتمل.

بالطبع، هذا المنطق هو مجرد تخمين متعلم. ربما تدحرجت مايكروسوفت النرد لتعيين مستوى التحذير هذا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top