6
隨着克++ 3.4和4.7我觀察到以下奇怪的行爲:C++重載分辨率,用戶定義的轉化率和功能模板
如果用戶定義的轉換是必要的函數模板不匹配,其中,一個普通的功能會。 我無法在C++ 98標準中找到相應的規則。 g ++是否正確,(如我所假設的)?或者它是一個錯誤?
template <class T>
int x(auto_ptr_ref<T> p)
{
return 1;
}
// this would match
/*
int x(auto_ptr_ref<int> p)
{
return 2;
}
*/
void dummy()
{
cout << x(auto_ptr<int>()) << endl;
}