"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > ما هي القيود والبدلات للتخصص داخل مساحة الاسم القياسية؟

ما هي القيود والبدلات للتخصص داخل مساحة الاسم القياسية؟

تم النشر بتاريخ 2024-11-15
تصفح:820

 What are the Restrictions and Allowances for Specialization within the std Namespace?

التخصص في مساحة الاسم القياسية: القيود والبدلات

على الرغم من القدرة على إضافة تخصصات صريحة إلى مساحة الاسم القياسية، إلا أن بعض القوالب لها محظورات صريحة . يعد فهم هذه القيود أمرًا بالغ الأهمية لضمان صحة التعليمات البرمجية باستخدام تخصصات مساحة الاسم القياسية.

القوالب المحظورة من التخصص

  • numeric_limits: لا مسموح به للأنواع القياسية غير الحسابية (على سبيل المثال، complex).
  • shared_ptr: يجب أن يكون CopyConstructible، CopyAssignable، LessThanComparable، وقابل للتحويل إلى منطقي.
  • weak_ptr: يجب أن يكون CopyConstructible. و CopyAssignable.
  • std::hash: يجب أن تستوفي التخصصات متطلبات تجزئة قالب الفئة.
  • type_traits: التخصصات الصريحة لأي قوالب فئة داخل غير محددة ما لم يتم تحديدها.
  • اللغات: لديك التخصصات المطلوبة.
  • istreambuf_iterator: يتطلب منشئ نسخة تافهة، منشئ افتراضي constexpr، ومدمر تافه.
  • معقد: يُسمح فقط بالتخصصات العائمة، والمزدوجة، والمزدوجة الطويلة.
  • الذرية: يجب أن تحتوي التخصصات على مُنشئ نسخة محذوف، وعامل تعيين النسخ، ومنشئ قيمة constexpr.
  • unary_function وbinary_function: مهملة ولا ينبغي أن تكون متخصصة.
  • قيود إضافية

بموجب البند 17.6.4.2.1، يكون السلوك غير محدد عند إضافة إعلانات أو تعريفات إلى مساحة الاسم std أو مساحات الأسماء الفرعية الخاصة بها. تنطبق الاستثناءات فقط على تخصصات القالب التي تعتمد على الأنواع المحددة من قبل المستخدم وتلبي المتطلبات القياسية.

    يمنع بشكل صريح تخصيص أي وظيفة عضو في قالب فئة مكتبة قياسي، أو قالب وظيفة العضو، أو قالب فئة العضو.
  • القوالب المسموح بها للتخصص

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

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

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

Copyright© 2022 湘ICP备2022001581号-3