2021年5月14日

[C++] Error Out Calling Overloaded Function with Type Conversion

故事的情境是這樣的:

某支 function 的設計,假設叫 func 好了,他只有一個參數 param,但是 param 有多種可能的型別,比方說 int, bool, ... 等等,根據不同的型別實作上會稍有不同,為此根據 param 的不同型別提供不同的 overloading 實作,讓使用者可以無需顧慮型別問題。

問題是,當今天使用者傳進 param 的型別,假設是 char,根據預期應該要去呼叫對應到 char 的實作,但是目前的實作中並沒有提供,理想上是應該對此另行提供一個符合 char 的實作,然後根據 C++ overloading resolution 的機制,此時會去呼叫 param 型別是 int 的實作從而導致可能有非預期的結果。

理想上此時應該在開發階段時就以某種方式告知開發者此處有缺漏須補足,但,該怎麼做?