Вот такой код выдаёт ошибку компиляции на
i586-alt-linux-g++ (GCC) 4.4.1 20090725 (ALT Linux 4.4.1-alt1)
#include <iostream>
using namespace std;
template<class T>
struct A
{
template<class T1>
void foo( T1 * ) { cout << "foo(T1 *)" << endl; }
template<>
void foo<T>( T * ) { cout << "foo(T *)" << endl; }
};
int main()
{
A<int> a;
int q;
char c;
a.foo( &q );
a.foo( &c );
return 0;
}
$ g++ opyt.cpp
opyt.cpp:19: error: explicit specialization in non-namespace scope ‘struct A<T>’
opyt.cpp:20: error: template-id ‘foo<T>’ in declaration of primary template
icpc (ICC) 10.1 20080801
при этом компилирует и код работает как надо.
Это глюк g++? Его можно как-то обойти?
Ответ на:
комментарий
от yz
Ответ на:
комментарий
от Reset
Ответ на:
комментарий
от yz
Ответ на:
комментарий
от yz
Ответ на:
комментарий
от Reset
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Злобный G++ (2008)
- Форум 100 dynamic_cast'ов за 1 миллисекунду (2014)
- Форум [c++] не получается вызвать функцию-шаблон (2007)
- Форум C++ - указатель на функции класса (2012)
- Форум Function template with a template argument. (2013)
- Форум Не разберусь что за ошибка. (2015)
- Форум boost::signal disconnect по slot_function_type (2009)
- Форум Неявное преобразование шаблонных структур (2017)
- Форум vectror<const A*> (2015)
- Форум Поглумиться над cl.exe (2006)