К сожалению, ответа на вопрос я не получил, поэтому повторяю вопрос снова:
Compiler: MS7.1
template<class T>
void func( typename T::value_type v )
{
}
template void func<vector<int> >(int v);
На это компилятор говорит:
warning C4667: 'void func(int)' : no function template defined that matches forced instantiation
Нежелательные решения:
1. #pragma warning( disable : 4667 )
2. Забить на explicit instantiation:
vector<int> v;
func<vector<int> >(1);
Как бороться?