يحدد فصلك تحويلًا صريحًا إلى منطقي، مما يتيح لك استخدام مثيله 't' مباشرة في العبارات الشرطية. ومع ذلك، فإن هذا التحويل الصريح يطرح السؤال: أين لا يمكن استخدام "منطقي" بدون طاقم تمثيل؟
سيناريوهات التحويل السياقي
يحدد معيار C أربعة السيناريوهات الرئيسية حيث يمكن تحويل القيمة إلى السياق منطقي:
العبارات:
if (t)
/* statement */;
التعبيرات:
!t
t && t2
اختبارات وقت الترجمة:
static_assert، noexcept، صريح، إذا constexpr (يتطلب تحويل constexpr) عامل التشغيل)static_assert(t); noexcept(t)
static_assert(t);
noexcept(t)
NullablePointer، وسيطات المسند أو المقارنة في خوارزميات STL
NullablePointer T std::remove_if(first, last, [&](auto){ return t; });
static_assert(t);
noexcept(t)
لا يُسمح بتضييق التحويلات من الأعداد الصحيحة بخلاف 0 و1 في اختبارات وقت الترجمة (C 26 وما بعده).
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3