سؤال

أعرف وظيفة القالب التي تقوم بتحميل خريطة من ملف CSV:

template <class T>
bool loadCSV (QString filename, map<T,int> &mapping){
    // function here
}

ثم حاول استخدامها:

map<int, int> bw;
loadCSV<int>((const QString)"mycsv.csv",&bw);

ولكن الحصول على خطأ في تجميع HTIS:

error: no matching function for call to 
‘loadCSV(const QString, std::map<int, int, std::less<int>, std::allocator<std::pair<const int, int> > >*)’

يبدو أن دعوة وظيفتي تؤدي إلى بعض الوسائط الضمنية، لكنني لا أفهم الخطأ وكيفية إصلاحه. أيه أفكار؟

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

المحلول

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

loadCSV("mycsv.csv", bw);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top