質問編集履歴
2
そのままでも問題なかったkも知れないが、テンプレートの<int>を修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -28,21 +28,21 @@
|
|
28
28
|
std::initializer_list<int> a(1, 2, 3); //コンパイルエラー
|
29
29
|
_initializer_list<int> b(1, 2, 3); //コンパイルエラーにはならないが動作がおかしい。コンパイルエラーになるようにするか、これでも初期化可能にしたい。
|
30
30
|
|
31
|
-
std::initializer_list c = {1, 2, 3); //正常
|
31
|
+
std::initializer_list<int> c = {1, 2, 3); //正常
|
32
|
-
_initializer_list d = {1, 2, 3}; //これは正常
|
32
|
+
_initializer_list<int> d = {1, 2, 3}; //これは正常
|
33
33
|
|
34
|
-
std::initializer_list e;
|
34
|
+
std::initializer_list<int> e;
|
35
35
|
e = {1, 2, 3}; //正常
|
36
36
|
|
37
|
-
_initializer_list f;
|
37
|
+
_initializer_list<int> f;
|
38
38
|
f = {1, 2, 3}; //コンパイルエラー、代入演算子のオーバーロードをしたいが「仮引数は1つでなければならない」と言われ、できない
|
39
39
|
|
40
40
|
samp(stdのやつ) ob1 = {1, 2, 3}; //これをするためにstd::initializer_listがある
|
41
41
|
samp(作ったやつ) ob2 = {1, 2, 3}; //「samp(int, int, int)は無い」と言われる、これの直し方が一番知りたい。
|
42
42
|
}
|
43
43
|
struct samp{
|
44
|
-
samp(std::initializer_list &ils){/***/} //正常
|
44
|
+
samp(std::initializer_list<int> &ils){/***/} //正常
|
45
|
-
samp(_initializer_list &ils){/***/} //「samp(int, int, int)は無い」と言われる
|
45
|
+
samp(_initializer_list<int> &ils){/***/} //「samp(int, int, int)は無い」と言われる
|
46
46
|
};
|
47
47
|
```
|
48
48
|
|
1
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -44,4 +44,7 @@
|
|
44
44
|
samp(std::initializer_list &ils){/***/} //正常
|
45
45
|
samp(_initializer_list &ils){/***/} //「samp(int, int, int)は無い」と言われる
|
46
46
|
};
|
47
|
-
```
|
47
|
+
```
|
48
|
+
|
49
|
+
※追記
|
50
|
+
私は`type ob = {1, 2, 3};`と`type ob(1, 2, 3);`の違いを理解していません。
|