本節書摘來自異步社群出版社《c++ templates中文版》一書中的第2章,第2.2節,作者: 【美】david vandevoorde , 【德】nicolai m. josuttis,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。
當我們為某些實參調用一個諸如max()的模闆時,模闆參數可以由我們所傳遞的實參來決定。如果我們傳遞了兩個int給參數類型t const&,那麼c++編譯器能夠得出結論:t必須是int。注意,這裡不允許進行自動類型轉換;每個t都必須正确地比對。例如:
有3種方法可以用來處理上面這個錯誤:
1.對實參進行強制類型轉換,使它們可以互相比對:
2.顯式指定(或者限定)t的類型:
3.指定兩個參數可以具有不同的類型。
關于這些話題更詳細的讨論,請看下一節。