非構築関数での暗黙的なキャストを回避するにはどうすればよいですか?
パラメータとして整数を取る
関数がありますが、その関数は文字、bool、long も受け取ります。
暗黙的にキャストすることでこれを行うと思います。
関数が一致する型のパラメーターのみを受け入れ、それ以外の場合はコンパイルを拒否するように、これを回避するにはどうすればよいですか?
「explicit」というキーワードがありますが、非構築関数では機能しません。:\
どうしよう?
次のプログラムはコンパイルされますが、コンパイルしないでください。
#include <cstdlib>
//the function signature requires an int
void function(int i);
int main(){
int i{5};
function(i); //<- this is acceptable
char c{'a'};
function(c); //<- I would NOT like this to compile
return EXIT_SUCCESS;
}
void function(int i){return;}
*用語や仮定の誤用は必ず指摘してください