سؤال

هل هناك طريقة لتحديد السمات/الأساليب غير المستخدمة في Visual C++ 2008 Professional؟إذا لم يكن ذلك ممكنًا افتراضيًا، فإن توصيات أدوات الطرف الثالث تحظى أيضًا بتقدير كبير.

شكرًا،
فلوريان

يحرر: يعمل nDepend فقط مع تجميعات .NET.أنا أبحث عن شيء يمكن استخدامه مع تطبيقات C++ الأصلية.

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

المحلول

يحاول بي سي لينت.إنها جيدة جدًا في العثور على التعليمات البرمجية الزائدة عن الحاجة.لم أجرب الإصدار 9 بعد.يستغرق الإصدار 8 بعض الوقت للتكوين.جرب العرض التوضيحي التفاعلي عبر الإنترنت.

نصائح أخرى

لم أستخدم أدوات الإنتاجية الخاصة بهم شخصيًا (أستخدم بدلة التحكم في Windows الخاصة بهم)، ولكن يبدو أن DevExpress لديه أداة إعادة تصنيع C++ تسمى إعادة البناء!لسي ++.لم أكتشف على الفور الميزات التي تبحث عنها، ولكن ربما تكون موجودة؟

يمكن لأداة التحقق من التغطية إظهار كود C++ غير المستخدم (ولكن ليس السمات).إنه يفعل ذلك ديناميكيًا لذا عليك "تجريب" التطبيق للحصول على النتائج:http://successfulsoftware.net/2008/03/10/coverage-validator/

الشيء الصعب هو أن العديد من الوظائف في C++ يجب أن تكون موجودة، حتى لو لم يتم استدعاؤها.سوف يتسبب Boost بشكل خاص في حدوث ذلك، ولكن حتى رمز STL العادي يمكنه القيام بذلك.ويجب أن يسير الكود الخاص بك جنبًا إلى جنب.يمكنك تعريف نسخة ctor لأن std::vector يتطلب ذلك رسميًا.ولكن إذا لم تقم بإنشاء مثيل لأي عضو std::vector يقوم بالفعل بنسخ T، فسيظل مُنشئ النسخة الخاص بك غير مستخدم.

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

يعد PC-Lint قويًا جدًا، ولكن من الصعب الاعتماد عليه.بالطبع هذا يصف بشكل جيد C وC++، أليس كذلك؟

أداة أخرى أعتقد أنها ممتازة هي Whole Tomato المساعدة البصرية X الذي يدمج الحق في IDE.

توجد بعض الأخطاء الكبيرة في لغة C++ عند البحث عن تعليمات برمجية غير مرجعية:قد تكون القوالب وعمليات الاسترجاعات ومعالجات الرسائل ضرورية لمشروعك ولكن لا يتم استدعاؤها بشكل مباشر أبدًا.على سبيل المثال، لا يتم استدعاء معالج سلسلة الرسائل مباشرة، ولكنه يكون بمثابة معلمة عند إنشاء سلسلة رسائل جديدة.ستظهر أيضًا رسائل النوع "On_buttonpress" في مشاريع MFC أو WTL كأساليب غير مستدعى عليها.

بمجرد العثور عليها، يمكنك تكوين PC-Lint لتجاهل هذه الأشياء، ولكن في المرة الأولى، يتطلب الأمر الكثير من العمل.

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

سيوفر لك بيان لغة استعلام التعليمات البرمجية التالي قائمة بالطرق غير المستخدمة

 WARN IF Count > 0 IN SELECT TOP 10 METHODS WHERE MethodCa == 0 AND 
   !IsPublic AND !IsEntryPoint AND !IsExplicitInterfaceImpl AND 
   !IsClassConstructor AND !IsFinalizer
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top