回答編集履歴
1
質問文更新に合わせて更新
test
CHANGED
@@ -1,7 +1,29 @@
|
|
1
|
+
```cpp
|
2
|
+
|
1
|
-
|
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
|
-
|
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)` を呼べばよいのです。
|