باستخدام TypeDefs من فئة القالب في وظيفة قالب (غير عضو)
-
19-09-2019 - |
سؤال
فشل ما يلي في ترجمة (مع GCC 4.2.1 على نظام Linux، على أي حال):
template< typename T >
class Foo
{
public:
typedef int FooType;
};
void
ordinary()
{
Foo< int >::FooType bar = 0;
}
template< typename T >
void
templated()
{
Foo< T >::FooType bar = T( 0 );
}
int main( int argc, char **argv )
{
return 0;
}
المشكلة هي مع هذا الخط:
Foo< T >::FooType bar = 0;
... والمترجم يجعل هذه الشكوى:
foo.c: في الوظيفة "الفراغ القالب ()":
foo.c: 22: خطأ: المتوقع "؛" قبل "بار"
عادة ما يرى المرء هذا عندما لم يتم الإعلان عن نوع، ولكن بقدر ما أستطيع أن أقول، يجب أن يكون foo <t>: footype صالحا تماما داخل القالب ().
المحلول
لا تنتمي إلى StackOverflow