teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

fix

2021/04/09 08:30

投稿

yohhoy
yohhoy

スコア6191

answer CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  ```cpp
4
4
  #include<iostream>
5
+ #include<typeinfo>
5
6
 
6
7
  template<class T>
7
8
  void Test11()
@@ -12,12 +13,13 @@
12
13
  template<class ...Args>
13
14
  void Test10()
14
15
  {
15
- [[maybe_unused]] int swallow[] = {(Test11<Args>(), 0)...};
16
+ int swallow[] = {(Test11<Args>(), 0)...};
16
17
  // 配列swallowの初期化リストとして下記のように展開され
17
18
  // {(Test11<int>(), 0), (Test11<float>(), 0), (Test11<double>(), 0)}
18
19
  // 初期化リストでは最左要素から右に向かって順番に評価されるため
19
20
  // Test11<int>() → Test11<float>() → Test11<double>()
20
21
  // の順で関数が呼び出される
22
+ (void)swallow; // 未使用変数の警告抑制
21
23
  }
22
24
 
23
25
  int main()

2

fix

2021/04/09 08:29

投稿

yohhoy
yohhoy

スコア6191

answer CHANGED
@@ -1,4 +1,4 @@
1
- C++17以降で使えるパラメータパックの展開テクニックがあります。
1
+ 比較的有名な(たぶん)パラメータパックの展開テクニックがあります。
2
2
 
3
3
  ```cpp
4
4
  #include<iostream>

1

update

2021/04/09 08:28

投稿

yohhoy
yohhoy

スコア6191

answer CHANGED
@@ -1,3 +1,5 @@
1
+ C++17以降で使えるパラメータパックの展開テクニックがあります。
2
+
1
3
  ```cpp
2
4
  #include<iostream>
3
5