回答編集履歴

1

質問文更新に合わせて更新

2021/06/24 08:46

投稿

int32_t
int32_t

スコア21695

test CHANGED
@@ -1,7 +1,29 @@
1
+ ```cpp
2
+
1
- 質問文の日本語がよくわからないですが、もし「可変長引数を持つ関数 `f(x, y, const char* format, ...)` の中で、可変長引数を持つ別の関数 `g(const char* format, ...)` を呼ぶことはできるか?」という問題であるなら、私の記憶が確かならまともな方法では不可能だった気がします。
3
+ void FrameWork::Text::ReFormatString(const char* font, int size, const char* str,
4
+
5
+ ...) {
6
+
7
+ ...
8
+
9
+ *fixationText = getTexture(str);
10
+
11
+ ```
2
12
 
3
13
 
4
14
 
5
- そういう場合は、`g()` の引数を `g(const char* format, va_list)` に変更れば良いです。
15
+ 可変長引数を `getTexture()` に渡していないのでから、まともに動くはずないですよね
6
16
 
17
+
18
+
19
+ ---
20
+
21
+
22
+
23
+ 「可変長引数を持つ関数 `ReFormatString(font, size, const char* format, ...)` の中で、可変長引数を持つ別の関数 `getTexture(const char* format, ...)` を呼ぶことはできるか?」という問題であるなら、私の記憶が確かならまともな方法では不可能だった気がします。
24
+
25
+
26
+
27
+ そういう場合は、`getTexture()` の引数を `getTexture(const char* format, va_list)` に変更すれば良いです。
28
+
7
- どうしても `g(const char* format, ...)` も必要な場合は、両方定義して `g(const char* format, ...)` から `g(const char* format, va_list)` を呼べばよいのです。
29
+ どうしても `getTexture(const char* format, ...)` も必要な場合は、両方定義して `getTexture(const char* format, ...)` から `getTexture(const char* format, va_list)` を呼べばよいのです。