任意の種類の引数(一般引数)をいくつでも取ることができる関数があります。
va_argを使用したくないので、可変個引数テンプレートの引数はコンパイラでサポートされていません。Boostライブラリを使用しています。
誰かがこれを実装する方法を私に提案できますか?
任意の種類の引数(一般引数)をいくつでも取ることができる関数があります。
va_argを使用したくないので、可変個引数テンプレートの引数はコンパイラでサポートされていません。Boostライブラリを使用しています。
誰かがこれを実装する方法を私に提案できますか?
va_args
可変個引数テンプレートをサポートするまともな最近のコンパイラ(無料のオープンソースGCC
やClang
コンパイラなど)を使用したくない場合、または使用したくない場合は、それを実現する方法はありません。引数の数に上限を設けることができる場合は、引数にBoost.Preprocessor
0をとる関数を定義するために使用できN
ます。
voidポインタの配列を渡すことで、チートすることもできます。
void func(void**args);
最後がNullであるか、ベクトルを渡す必要があります。
void func(std::vector<void*> args);
しかし、APIを悪用し、追跡不可能なランタイムエラーにさらしているため、適切なコードレビューを行うには、コードを削除して適切に再設計する必要があります。