元はMATLABで書かれたプロジェクトのC++クローンをビルドします。 MATLABのような動的型付けされた言語とC++のような静的型付けされた言語との間には避けられない相違点があるので、可能な限りオリジナルに近いコードを "翻訳"したいと思います。C++の混合型可変長引数リスト(varargin、* args、...)
私の質問は、混合型の引数を含むことができる関数のパラメータとして可変長引数リストです。
MATLABは、関数のパラメータとしてvarargin
があります。この非常に快適にPythonで
varargin Variable length input argument list.
Allows any number of arguments to a function. The variable
varargin is a cell array containing the optional arguments to the
function. varargin must be declared as the last input argument
and collects all the inputs from that point onwards. In the
declaration, varargin must be lowercase (i.e., varargin).
、*args
と**kwargs
ハンドル。
C++でこのような柔軟性を得るにはどうすればよいですか?私が使用すべき標準の引数リストクラスはありますか?
stdarg.h http://en.wikipedia.org/wiki/Stdarg.hまたはcstdargを参照してください。 –
*省略記号*( 'printf'スタイル)以外にも、タイプセーフなバージョン(コンパイル時に解決)を可能にするバリデーショナルテンプレートを使用することができます。 –
実際のタスクでは、実際にはCまたはC++コードを生成できます。一番美しいものではありませんが、ただそれを使うだけでかなりの痛みを避けることができます。私は 'varargin'が*省略記号*を使っているだけだと思っていますが、ツールがあなたにそれをさせるようにしてください。 –