"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > لماذا تم تعريف __cplusplus على أنه 199711L في Visual Studio 2012 على الرغم من دعم C++ 11؟

لماذا تم تعريف __cplusplus على أنه 199711L في Visual Studio 2012 على الرغم من دعم C++ 11؟

تم النشر بتاريخ 2025-01-18
تصفح:743

Why is __cplusplus defined as 199711L in Visual Studio 2012 despite C   11 support?

__cplusplus في Visual Studio 2012

في Visual Studio 2012، لاحظ بعض المطورين أن __cplusplus تم تعريفه على أنه 199711L، مما يشير إلى "القديم" معيار C، على الرغم من أن VS 2012 يتضمن C 11 support.

الخلفية الماكرو __cplusplus هو ماكرو معالج مسبق يوفر إصدار معيار C المدعوم في Visual Studio. تتوافق قيمة 199711L مع معيار C 98، بينما تشير 201103L إلى دعم C 11.

المشكلة

في Visual Studio 2012، حتى لو تم تضمين رؤوس C 11 ، لا يزال يتم تعريف __cplusplus بشكل غير صحيح على أنه 199711L. قد يكون هذا مشكلة بالنسبة للتعليمات البرمجية التي تعتمد على الماكرو __cplusplus للتمييز بين إصدارات معيار C.

الحل

تم الإبلاغ عن المشكلة إلى Microsoft للمراجعة، وتظهر تحت العنوان "قيمة الماكرو المحددة مسبقًا __cplusplus لا تزال 199711L."

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3