g ++整数到字符串赋值没有错误/警告

时间:2012-04-16 12:55:10

标签: gcc g++ gcc-warning

以下代码在G ++(GCC)4.1.2上编译时没有任何警告或错误。

是否有理由不发出错误/警告?

是否有可能导致其发出警告或错误的标志?

#include <iostream>

using namespace std;

void func(string &s)
{
    unsigned long u = 123;
   s = u;
}

int main()
{
   string s;

   func (s);

   return 0;
}

1 个答案:

答案 0 :(得分:3)

没有警告或错误的原因是因为这是有效的C ++。 std::string重载了赋值运算符(operator=)以获取charlong可以隐式转换为char,因此代码有意义。