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