私はC++のRubyバックグラウンドの学習/使用を開始しました。C++:警告:文字列リテラルとの比較結果が不特定の動作となる[-Waddress]
誰かが私に以下のコードを教えてもらえますか?
私が間違って何見当がつかないが、それは、このエラーメッセージを引き起こしている:
C++:警告:[-Waddress]
void OnUserConnect(LocalUser* user)
{
if (user->MyClass->name.c_str() == "user") {
ServerInstance->SNO->WriteToSnoMask('a', "Triggered: %s", user->MyClass->name.c_str());
}
}
ありがとう、これは質問を解決しました。通知で '.c_str()'を使う必要があるのはなぜですか? – user6213803
@ user6213803あなたは 'WriteToSnoMask'呼び出しを意味しますか?その関数はおそらくCスタイルの文字列であり、C++の 'std :: string'オブジェクトではないと期待しています。 –
@ user6213803。 'WriteToSnoMask(char letter、const char * text、...)'は書式設定文字列( 'printf'に似ています)を使います。"文字列 "フォーマッタ'%s'はCスタイルの文字列 'char *' 'std :: string'では動作しません。 – Niall