Bug в компиляторе MSVC 9.0?
От: SX Россия  
Дата: 15.06.08 05:36
Оценка:
Код:

typedef std::string SomeType;

template <typename T> void f(T, const SomeType& = SomeType())
{}

template <> void f<int>(int, const SomeType&)
{}

int main()
{
     f(10); // (1)
     f(10); // (2)
     f(10); // (3)
     return 0;
}


При компиляции выдаются ошибки в строках (2) и (3): cannot convert from "SomeType*" to "const SomeType&". Причем, если SomeType — встроенный тип, например, short или int, то компиляция проходит без ошибок.

В компиляторе MinGW 3.4.5 этот код компилируется без ошибок.

Обходные пути как сделать такую специализацию имеются.

Кто-нибудь с таким сталкивался?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.