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

解決


kossy  2005-01-22 18:35:00  No: 56117  IP: [192.*.*.*]

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

編集 削除
YuO  2005-01-22 22:55:40  No: 56118  IP: [192.*.*.*]

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

編集 削除
代替案  2005-01-23 15:38:29  No: 56119  IP: [192.*.*.*]

#define AAA printf
これで我慢?

編集 削除
kossy  2005-02-07 10:10:27  No: 56120  IP: [192.*.*.*]

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

編集 削除
aaa  2005-02-07 14:07:22  No: 56121  IP: [192.*.*.*]

#define TES_ASSERT tes_assert

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

とか

編集 削除
kossy  2005-02-07 16:25:44  No: 56122  IP: [192.*.*.*]

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

編集 削除