خطأ في وظيفة القالب(باستخدام دفعة.الصفوف)
-
27-09-2020 - |
سؤال
#include <list>
#include <boost/tuple/tuple.hpp>
template<class InputIterator>
void f(InputIterator it)
{
typedef boost::tuple<typename InputIterator::value_type, int> Pair;
std::list<Pair> paired;
typename std::list<Pair>::const_iterator output;
for(output=paired.begin(); output!=paired.end(); ++output)
{
output->get<1>();
}
}
أحصل على مكتبات مع وظيفة القالب هذه.دول مجلس التعاون الخليجي 4.1.2 (codepad.org) تقارير الخطأ التالي:
In function 'void f(InputIterator)':
Line 12: error: expected primary-expression before ')' token
compilation terminated due to -Wfatal-errors.
يمكن لشخص أكثر خبرة مع قوالب تقديم المشورة?إما المشكلة أو العبارات الرئيسية للبحث عن نفسي?هذا لي عالقة.
المحلول
لأن get
هو قالب وظيفة ونوع من output
يعتمد على معلمة القالب InputIterator
, ، تحتاج إلى استخدام template
الكلمة الرئيسية:
output->template get<1>();
ال كومو ج Template قالب التعليمات لديه وصف جيد لماذا هذا ضروري.
لا تنتمي إلى StackOverflow