実現したいこと
stdarg.hによって定義された関数va_startを正しく実行するために、エラーコードC2338を解消したい。
前提
現在VisualStudioにて、Youtube上にアップされた動画でOpenGLを学習しています。エラーが出てしまったのはこちらの動画(https://www.youtube.com/watch?v=mnH_w0rkndY&list=PL8_ASIpg7ciG3btmV6RElRjmWrfAL0q2P&index=7&t=941s)の12:20からのfontDrawという関数を書く部分になります。私自身が初心者なこともあり、どうやって解決すればいいのか分からずに詰まってしまっています。是非お力添えをいただきたいです。
発生している問題・エラーメッセージ
エラーコード:C2338 説明:static_assert failed: 'va_start argument must not have reference type and must not be parenthesized' この説明文はvades.hというヘッダファイルに入っているメッセージで、エラーを読み取ると出てくる仕組みになっているようです。以下がそのヘッダファイル中の該当部分です。 struct __vcrt_assert_va_start_is_not_reference { static_assert(!__vcrt_va_list_is_reference<_Ty>::__the_value, "va_start argument must not have reference type and must not be parenthesized"); };
該当のソースコード
void fontDraw(const char *format, ...) { va_list argList; va_start(argList, *format); char str[256]; vsprintf_s(str, format, argList); va_end(argList); };
補足情報
使用ツール:Visual Studio Community 2022
回答1件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。
2023/02/06 02:04