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

回答編集履歴

6

()付きのコード削除、リンク追加

2019/08/06 15:41

投稿

SHOMI
SHOMI

スコア4079

answer CHANGED
@@ -12,10 +12,6 @@
12
12
  別のshrared_ptrもあとから追加される可能性があり、コンストラクタではvectorの1要素目として格納したいということでしょうか。
13
13
  そうであれば以下ですかね。
14
14
  ```C++
15
- Aggrecate(const std::shared_ptr<Hoge>& _hoges) : hoges({ _hoges }) {};
15
+ Aggrecate(const std::shared_ptr<Hoge>& _hoges) : hoges{ _hoges } {};
16
16
  ```
17
-
18
- `()`なしの以下でも通ります。
19
- ```C++
20
- Aggrecate(const std::shared_ptr<Hoge>& _hoges) : hoges{ _hoges } {};
17
+ [リスト初期化](https://ja.cppreference.com/w/cpp/language/list_initialization)の(5)です。
21
- ```

5

()なしでも通る旨追記

2019/08/06 15:41

投稿

SHOMI
SHOMI

スコア4079

answer CHANGED
@@ -13,4 +13,9 @@
13
13
  そうであれば以下ですかね。
14
14
  ```C++
15
15
  Aggrecate(const std::shared_ptr<Hoge>& _hoges) : hoges({ _hoges }) {};
16
+ ```
17
+
18
+ `()`なしの以下でも通ります。
19
+ ```C++
20
+ Aggrecate(const std::shared_ptr<Hoge>& _hoges) : hoges{ _hoges } {};
16
21
  ```

4

vector格納コード追記

2019/08/06 15:17

投稿

SHOMI
SHOMI

スコア4079

answer CHANGED
@@ -8,4 +8,9 @@
8
8
  ```
9
9
  の間違いでは?
10
10
 
11
+ と書いてから気づきましたが、vectorに格納したいということなので
11
- それとも別のメンバ関数で別のshrared_ptrもあとから追加される可能性があって、コンストラクタではvectorの1要素目として格納したいということでしょうか。
12
+ 別のshrared_ptrもあとから追加される可能性があ、コンストラクタではvectorの1要素目として格納したいということでしょうか。
13
+ そうであれば以下ですかね。
14
+ ```C++
15
+ Aggrecate(const std::shared_ptr<Hoge>& _hoges) : hoges({ _hoges }) {};
16
+ ```

3

質問内容に関して追記

2019/08/06 14:57

投稿

SHOMI
SHOMI

スコア4079

answer CHANGED
@@ -6,4 +6,6 @@
6
6
  ```C++
7
7
  std::shared_ptr<Hoge> hoges;
8
8
  ```
9
- の間違いでは?
9
+ の間違いでは?
10
+
11
+ それとも別のメンバ関数で別のshrared_ptrもあとから追加される可能性があって、コンストラクタではvectorの1要素目として格納したいということでしょうか。

2

質問ソースが変更されたので修正

2019/08/06 14:48

投稿

SHOMI
SHOMI

スコア4079

answer CHANGED
@@ -1,9 +1,9 @@
1
1
  エラーとソースが食い違っているので提示されたソースが正しいものなのかわかりませんが、
2
2
  ```C++
3
- Aggrecate(std::shared_ptr<Hoge>& _hoges) : hoges(_hoges){};
3
+ std::vector<std::shared_ptr<Hoge>> hoges;
4
4
  ```
5
5
 
6
6
  ```C++
7
- Aggrecate(std::vector<std::shared_ptr<Hoge>>& _hoges) : hoges(_hoges){};
7
+ std::shared_ptr<Hoge> hoges;
8
8
  ```
9
9
  の間違いでは?

1

タイプミス修正

2019/08/06 14:44

投稿

SHOMI
SHOMI

スコア4079

answer CHANGED
@@ -4,6 +4,6 @@
4
4
  ```
5
5
 
6
6
  ```C++
7
- Aggrecate(std::shared_ptr<std::shared_ptr<Hoge>>& _hoges) : hoges(_hoges){};
7
+ Aggrecate(std::vector<std::shared_ptr<Hoge>>& _hoges) : hoges(_hoges){};
8
8
  ```
9
9
  の間違いでは?