2012-04-16 18 views
1

次のコードは、G ++(GCC)4.1.2で警告またはエラーなしでコンパイルされます。g ++エラー/警告なしの文字列割り当ての整数

エラー/警告を発行しない理由はありますか?

警告またはエラーが発生する可能性のあるフラグがありますか?

#include <iostream> 

using namespace std; 

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

int main() 
{ 
    string s; 

    func (s); 

    return 0; 
} 

答えて

3

警告またはエラーがないのは、これが有効なC++であるためです。 std::stringは、代入演算子(operator=)をオーバーロードしてcharになります。 longは暗黙的にcharに変換することができるため、コードは意味があります。

関連する問題