ما العلم الذي يسكت تحذير دول مجلس التعاون الخليجي بشأن عدم وجود سطر جديد في نهايات الملفات؟

StackOverflow https://stackoverflow.com/questions/282851

  •  08-07-2019
  •  | 
  •  

سؤال

لقد قرأت للتو هذا المشنور حول سبب وجود تحذيرات السطر الجديد، ولكن لأكون صادقًا، يضم فريقي أشخاصًا يعملون على عدة منصات مختلفة ومع العديد من المحررين المختلفين (يستخدم كل شخص ما يناسبه بشكل أفضل)، لذلك أصبح التحذير موجودًا في كل مكان، وبما أنه لا يستحق التحذير حقًا لقد أصبح الاهتمام بالأمر بمثابة ضجيج ويجعل العثور على تحذيرات خطيرة أمرًا صعبًا.

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

الآن نقوم بالتجميع مع -Wall, ، لأننا نريد تحذيرات، ولكن هل هناك إشارة مضادة لتجنب تحذيرات السطر الجديد؟

ملحوظة: لقد بحثت في الدليل قليلاً ولكن لم أجد الإجابة واضحة في أي مكان لذلك استسلمت.

ملحوظة: ردًا على الحل المعقول تمامًا الذي قدمه روبرت غامبل، فإن الكود الخاص بنا هو نظام متعدد المنصات ولدينا أشخاص ونبني على Linux وSolaris وWindows، لذا فإن السطر الجديد...ليس تحت الإجماع.والمترجم الخاص بشخص ما سوف يبكي دائمًا.لأن هناك أكثر من 40 مطورًا، بالإضافة إلى موظفين آخرين غير مبرمجين.

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

المحلول

لا يوجد واحد على حد علمي، لقد استخدمت دول مجلس التعاون الخليجي لسنوات.

تحديث:لا ينبغي أن يكون هناك أي تحذيرات مرفوعة بمعيار C++ 11. س ذات صلة

نصائح أخرى

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

لماذا لا تتأكد فقط من أن ملفاتك تحتوي على سطر جديد نهائي كما هو مفترض؟يجب أن يكون هذا تغييرًا بسيطًا في التكوين في المحررين المخالفين ويبدو أنه طريقة سهلة جدًا "لإسكات" التحذير.

-Wno-eof-newline

تمت إضافة هذا مع الإصلاح لـ علة مجلس التعاون الخليجي 14331


من الغريب أنني لا أستطيع في الواقع جعل دول مجلس التعاون الخليجي تصدر تحذيرًا بشأن فقدان الأسطر الجديدة.أعتقد أن الإصدارات الأحدث قد استغنت عن هذا التحذير تمامًا.

يمكنني الحصول على مجلس التعاون الخليجي للقبول -Wno-eof-newline لكنه يشكو من الأعلام غير المعترف بها عندما أحاول -Weof-newline.أزال C++ 11 متطلبات الأسطر الجديدة في نهاية الملفات ولكن لكتابة تعليمات برمجية محمولة وفقًا للمعايير القديمة، يجب أن يكون من الممكن حقًا تمكين مثل هذه التحذيرات المتحذقة.


لحسن الحظ، لا يزال clang يدعم التشخيص بشكل صحيح حول الأسطر الجديدة المفقودة:يمكن تمكين هذا التحذير باستخدام -Wnewline-eof في جميع الأوضاع، أو في C++ 11 والأوضاع الأعلى يمكن أيضًا تمكينه -Wc++98-compat-pedantic.

يتم إيقاف تشغيل هذه التحذيرات بشكل افتراضي، ولكن إذا كنت تستفيد من clang -Weverything لتمكين استراتيجية "طرحية" للتحكم في التحذيرات، ثم في C++ 11 والأوضاع الأعلى تحتاج إلى كليهما -Wno-newline-eof و -Wno-c++98-compat-pedantic لتعطيل التحذير.

أنا متأكد بنسبة 90% من عدم وجود أي جدل لإيقاف هذا الأمر.

سبب التحذير هو أن الملفات التي لا تحتوي على سطر نهائي تعطي سلوكًا غير محدد عند تجميعها:

انظر المعيار:http://c0x.coding-guidelines.com/5.1.1.2.html

إليك منشور مدونة يحتوي على بعض أكواد python (التي لم أجرّبها) والتي تنص على أنها ستصلح الملفات المصدر بهذه المشكلة.

http://www.johndcook.com/blog/tag/gcc/

هل ترغب في إضافة رابط إلى عنصر التحكم بالمصدر الخاص بك والذي لن يسمح بتسجيل الدخول الناجح للكود حتى تتم إضافة السطر الجديد؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top