في c 20 ، يتم التقاط تفاصيل السياق استدعاء الوظيفة مع std :: source_location. ومع ذلك ، فقد أثبت استخدامه مع وظائف قالب variadic تحديًا بسبب وضع معلمة Source_location. هذا أعاق استخدام std :: source_location بسبب الأسباب التالية:
المحاولة الأولى:
debug void (args && ... args ، const std :: source_location & loc = std :: source_location :: current () ؛
يقدم غموضًا للمتصلين لأنه يتدخل معلمة غير متوقعة.
دليل:template
void debug(Args&&... args, const std::source_location& loc = std::source_location::current());
قالب يتيح هذا المكالمات مثل:
int main () { Debug (5 ، 'a' ، 3.14f ، "foo") ؛ }
الخلاصة:template
void debug(Args&&... args, const std::source_location& loc = std::source_location::current());
من خلال استخدام أدلة الخصم ، يمكن لمبرمجي C دمج STD :: Source_Location بسلاسة لالتقاط معلومات السياق بدون مجهود.تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3