好的,所以我知道人们得出prototyped function not called
错误的典型原因。这不是that case
考虑以下课程:
class FF {
public:
FF(float f):_f(f){}
float _f;
void DoSomething(float f) { _f = f; }
};
我尝试使用以下代码构造一个FF对象,该代码将int转换为float。注意:我正在使用遗留代码,它使用这种铸造风格 - 我知道它不是现代方式。
int x = 0;
FF fTest(float(x));
VS2013发出警告:'FF fTest(float)': prototyped function not called (was a variable definition intended?)
为什么VS认为这是一个函数原型? FF只包含1个构造函数。
有趣的是,当用于调用对象上的函数时,相同的代码格式不会发出警告:
int x = 0;
FF fTest(0.f);
fTest.DoSomething(float(x));