質問編集履歴
5
軽微な修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -13,7 +13,7 @@
|
|
13
13
|
};
|
14
14
|
```
|
15
15
|
|
16
|
-
ここで、メンバに自分自身を持たせようとする際に `static inline` をつけたとき、テンプレートの場合にはエラーにならないようです。コンパイルは、gcc と clang 両方で試しました。[追記] このとき、実際にインスタンス化して確認しました。また、
|
16
|
+
ここで、メンバに自分自身を持たせようとする際に `static inline` をつけたとき、テンプレートの場合にはエラーにならないようです。コンパイルは、gcc と clang 両方で試しました。[追記] このとき、実際にインスタンス化して確認しました。また、MSVC で試したところ、Internal compiler error になるようです。
|
17
17
|
|
18
18
|
```cpp
|
19
19
|
// テンプレートではない場合
|
4
情報の追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -13,7 +13,7 @@
|
|
13
13
|
};
|
14
14
|
```
|
15
15
|
|
16
|
-
ここで、メンバに自分自身を持たせようとする際に `static inline` をつけたとき、テンプレートの場合にはエラーにならないようです。コンパイルは、gcc と clang 両方で試しました。[追記] このとき、実際にインスタンス化して確認しました。
|
16
|
+
ここで、メンバに自分自身を持たせようとする際に `static inline` をつけたとき、テンプレートの場合にはエラーにならないようです。コンパイルは、gcc と clang 両方で試しました。[追記] このとき、実際にインスタンス化して確認しました。また、MSCV で試したところ、Internal compiler error になるようです。
|
17
17
|
|
18
18
|
```cpp
|
19
19
|
// テンプレートではない場合
|
3
質問文に追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -13,7 +13,7 @@
|
|
13
13
|
};
|
14
14
|
```
|
15
15
|
|
16
|
-
ここで、メンバに自分自身を持たせようとする際に `static inline` をつけたとき、テンプレートの場合にはエラーにならないようです。コンパイルは、gcc と clang 両方で試しました。
|
16
|
+
ここで、メンバに自分自身を持たせようとする際に `static inline` をつけたとき、テンプレートの場合にはエラーにならないようです。コンパイルは、gcc と clang 両方で試しました。[追記] このとき、実際にインスタンス化して確認しました。
|
17
17
|
|
18
18
|
```cpp
|
19
19
|
// テンプレートではない場合
|
2
書式の改善
title
CHANGED
File without changes
|
body
CHANGED
@@ -9,7 +9,7 @@
|
|
9
9
|
// テンプレートの場合
|
10
10
|
template <typename T>
|
11
11
|
struct X {
|
12
|
-
X x; // 不完全型なのでエラー
|
12
|
+
X x = {}; // 不完全型なのでエラー
|
13
13
|
};
|
14
14
|
```
|
15
15
|
|
1
書式の改善
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
通常、クラスを定義する際、メンバに自分自身を持たせようとすると
|
1
|
+
通常、クラスを定義する際、メンバに自分自身を持たせようとすると不完全型なのでエラーになると思います。これは、テンプレートクラスの場合でも同様です。
|
2
2
|
|
3
3
|
```cpp
|
4
4
|
// テンプレートではない場合
|