VC7で可変個引数のマクロを作成するには?

解決


kossy  2005-01-23 03:35:00  No: 56117

VC7で可変個引数のマクロを作りたいのですが(GCCのような)可能でしょうか?
どこかでVC6は無理だが、7からいけるという記事をみたのですが、
本当でしょうか?
現在
#define AAA(...)    \
  printf(__VA_ARGS__);
は予期せぬ文字列があります
でエラーになります。
宜しくお願いします。


YuO  2005-01-23 07:55:40  No: 56118

とりあえず,2005β1日本語版のヘルプではみつかりませんでした。
そもそも,VC++はISO/IEC 9899:1999に準拠していませんから,
可変長マクロはサポート外だと思いますよ。


代替案  2005-01-24 00:38:29  No: 56119

#define AAA printf
これで我慢?


kossy  2005-02-07 19:10:27  No: 56120

お返事有難う御座います。
返答に時間がかかり申し訳御座いません。
サポート外なんですか。
多分そうなんでしょうね。ググってみても
全然出てきませんでした。
とりあえず
#define AAA printf
でいきます。
もう一点可変長のAssert(判定を通常のAssertとは逆)を作っていまして
#define TES_ASSERT(exp, ...) \
{           \
if(exp){         \
   Assert処理(__VA_ARGS__)   \
  }                          \
}
これではinline化は出来ないし、
どなたかご教授頂けませんでしょうか?


aaa  2005-02-07 23:07:22  No: 56121

#define TES_ASSERT tes_assert

inline void tes_assert(bool exp, ...)
{
  if(exp) {
    // Assert処理
  }
}

とか


kossy  2005-02-08 01:25:44  No: 56122

aaaさん有難う御座いました。
やっと巧く行きました。
勉強になります。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加