如何ML在下面的函數定義進行了類型推斷:解釋ML類型推斷的C++程序員
let add a b = a + b
是它喜歡在那裏,直到模板實例化後的點沒有進行類型檢查C++模板如果該類型支持必要的操作,該函數可以工作,否則會引發編譯錯誤?
即,例如,下面的函數模板
template <typename NumType>
NumType add(NumType a, NumType b) {
return a + b;
}
將爲
add<int>(23, 11);
工作,但不會爲
add<ostream>(cout, fout);
的工作是什麼,我猜測是正確的或ML類型推斷的工作方式不同? PS:對不起,我的英語不好;這不是我的母語。
你問關於類型推斷還是類型檢查? – sepp2k 2010-04-20 19:24:56
推斷。在我的示例中,從ML函數定義中推斷出哪種類型? – 2010-04-20 19:26:50