这是我的上一个问题的跟进。
考虑我编写了一个具有以下原型的函数:
``` function functionName(param1, param2) { // function body } ```
考虑我编写了一个具有以下原型的函数:
``` function functionName(param1, param2) { // function body } ```
int a_function(Foo val);
在此,foo被认为是一个定义为unsigned int的类型。不幸的是,由于缺乏文档,这一点无法验证。
然后,有人使用了a_function,但却将其作为unsigned int的参数调用。
故事在这里发生了转折。Foo实际上是一个类,它可以在显式构造函数中将unsigned int作为单个参数的unsigned int。
编译器是否应该识别不匹配并插入构造函数,从而渲染函数调用,这是标准和可靠的行为?还是我应该得到编译时错误报告类型不匹配。