2

C++ で v8 モジュールを作成しようとしています。そこでは、関数は配列で可変数の引数を受け取ります。その配列を取り、フォーマットされた文字列を受け取り、必要な引数であるような関数を呼び出したいと思いgettextます。printf問題は、どのようにして配列を取り、その要素を引数としてそれらの関数の 1 つに送ることができるのでしょうか?

Python では、次のようにします。

def the_function(s, who, hmany): print s%(who, hmany)

the_args = ["Hello, %s from the %d of us", "world", 3]
the_function(*the_args)

C++ でそれをどのように実現できますか? (私は v8 と node.js を使用しているので、私が認識していない名前空間のどこかに関数またはクラスがある可能性があります)

4

1 に答える 1

2

1 つの方法を次に示します。

void foo(const char *firstArg, ...) {
    va_list argList;
    va_start(argList, firstArg);

    vprintf(firstArg, argList);

    va_end(argList);
}

printf を実行しようとしているとします。基本的に、va_list がキーであり、これを使用して引数を調べたり、va_list を取る他の関数に渡すことができます。

于 2010-09-08T03:08:21.673 に答える