Порядок вызова шаблонных и не шаблонных функций

В Linux я получаю

template max() is called

Но под винду я получаю

non-template max() is called

Зачем? В Linux я использую gcc 4.5, а в Windows - VS2008.

#include <iostream>
#include <vector>

template < typename T > 
inline void max( const int& a, const T& b ) 
{
    std::cout << "template max() is called" << std::endl;
}

template < typename T > 
inline void Imax( const int& a, const std::vector<T>& b)
{
    max(a, b[0]);
}

inline void max( const int& a, const int& b ) 
{
    std::cout << "non-template max() is called" << std::endl;
}

int main()
{
    std::vector<int> v;
    v.push_back(1);
    Imax(1, v);       
    return 0;
}

Ответы на вопрос(2)

Ваш ответ на вопрос