(C ++ ودول مجلس التعاون الخليجي) الخطأ: المتوقع منشئ، المدمر، أو نوع التحويل قبل "المضمنة"

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

  •  22-07-2019
  •  | 
  •  

سؤال

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

وهناك العديد من الملفات الأخرى التي تشمل نفس الملف .h التي لا تزال ترجمة دون شكوى.

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

وانا على وشك استعداد للبدء في تجريد كل شيء آخر بعيدا حتى لدي البدائي الحد الأدنى من عينة حتى أستطيع أن نطرح هذا السؤال بذكاء، ولكن كنت احسب أن تأخذ طعنة في السعر المطلوب بالطريقة الغبية أولا:

ويمكن لأي شخص أن تعطيني فكرة أساسية حول ما رسالة الخطأ هذه في الواقع وسائل لذلك قد تكون قادرة على البدء في تعقب عليه / جوجل ذلك؟

وفقط من أجل اكتمالها، المثال الأول من حيث اراه هذا يبدو أكثر أو أقل مثل

namespace Utilities
{
   template <typename T> GLfloat inline NormalizeHorizontally(T x)
   {
      GLfloat scaledUp = x*2.0;
      GLfloat result = scaledUp / Global::Geometry::ExpectedResolutionX;
      return result;
   }
}
هل كانت مفيدة؟

المحلول

وهذا يعني أنه يمكنك وضع "المضمنة" الكلمة في المكان الخطأ. انها تحتاج للذهاب قبل نوع عودة الأسلوب، ومنها مثلا.

 template <typename T> inline GLfloat  NormalizeHorizontally(T x)

والبساطة.

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

وعموما، إذا كنت تحصل على "المتوقع بلاه بلاه قبل foobar" خطأ، وهذا هو خطأ في توزيع وغالبا ما يشير إلى وجود خطأ في بناء الجملة بسيطة مثل فاصلة منقوطة المفقودة، في عداد المفقودين هدفين، أو الكلمات الرئيسية misordered. المشكلة هي عادة في مكان ما حول الجزء المذكور، ولكن يمكن أن تكون في الواقع حين يعود، حتى في بعض الأحيان لديك للبحث عن ذلك.

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