У меня проблема со следующим кодом:
template <typename T>
void foo(struct bar & b);
struct bar {};
int main(){}
Он успешно компилируется на GCC, но не работает на MSVC (2008) с следующая ошибка:
C2990: 'bar': неклассовый тип, который уже был объявлен как тип класса
Код неправильный или это ошибка в MSVC?
Это сработает, если я добавлю struct bar;
перед определением шаблона.