Gcc g++;无错误/警告的整数到字符串赋值

Gcc g++;无错误/警告的整数到字符串赋值,gcc,g++,gcc-warning,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; } #包括 使用名称空间s

以下代码在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;
}
#包括
使用名称空间std;
无效函数(字符串和s)
{
无符号长u=123;
s=u;
}
int main()
{
字符串s;
func(s);
返回0;
}

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