クラス A があり、実際にオーバーロードされている 2 つのメソッド foo があります。クラスはややこのように見えます
class A
{
public:
bool foo(int& a);
bool foo(size_t& a);
};
bool A::foo(int& a)
{
return true;
}
bool A::foo(size_t& a)
{
int new_a = a;
return foo(new_a); // here Cl throws me warning C4717: 'hweudm::UDMAbstractBaseEntity::SetAttribute' : recursive on all control paths, function will cause runtime stack overflow
}
int main()
{
A aObj;
size_t val = 12;
aObj.foo(val);
return 0;
}
コードからはあいまいに見えません。しかし、コンパイル中にこの警告を表示したくありません。だから誰でも教えてくれますか
- size_t を int に型キャストしたにもかかわらず、この警告が表示されるのはなぜですか?
- これが GCC の警告ではなくエラーになるかどうか。