お世話になります。
VC++6.0/Xpで開発しております。
可変個数引数の関数が貰った引数を、更にそのまま
可変個数引数の関数に渡すことは可能なのでしょうか?
void func1(char * pdata, ...)
void func2(char * pbuf, ...)
という二つの関数があり、func1の中で、func2を呼び出したいのですが
func2の可変引数...は、func1の可変引数...を、そのまま渡したいのです。
方法をご存知の方がいらっしゃいましたら
ご指示願います。
宜しくお願いいたします。
アセンブラでガリガリ書けばできないこともないですが……。
C / C++の範囲内で,となるとできません。
vsprintfのように,va_listを引数とするfunc2代替関数を用意しましょう。
お早いご回答頂きまして有難うございます。
何かしら簡単に出来る方法があるのでは。と思っていたの
ですが、鬱陶しいロジックになるようですね。
有難うございました。
別の方法を考えてみます。
もう解決チェック済みですが。。。
> 鬱陶しいロジック
最初の関数が可変引数でもらう以上
どうあがいてもva_listを使わざるを得ないです。
そうなれば次の関数にva_listを渡すのも
最初の関数でva_listを使うのと変わらないのではないでしょうか。
> 別の方法
C++であればstd::vectorとかstd::listなどの
コンテナをそのまま渡せば実質的には
可変長引数を渡すのと変わりません。
しかも型を固定できるのでva_listみたいに
型情報を第一引数に渡す必要もありません。
ただし、型を固定されると困るのであれば
voidポインタを使ってキャストしまくるとか
VARIANTのような複数の型を許容するクラスを
作って対応することになりますが・・・。
すいません。
回答下さっているとは、気がつきませんでした。
有難うございます。
実は、まだ解決出来ていなかったりしております。
va_listを引数にして、試してみようと思います。