回答編集履歴

2

ミス修正

2019/03/13 13:53

投稿

Chironian
Chironian

スコア23272

test CHANGED
@@ -10,11 +10,11 @@
10
10
 
11
11
  `Base<Derived<SomeType>, SomeType>`は、SomeTypeが決まらないと決まりません。なので、そのメンバ変数のmember_も確定しません。(仮にint型だったとしても同様です。Baseが特殊化されていて、特殊化の方にはmember_がないことも許されますから。)
12
12
 
13
- しかし、使う側は member_ で呼び出しているだけで特に限定する修飾がなく、テンプレート引数に依存していません。結果、これは最初の名前解決の際に無視されます。
13
+ しかし、使う側は member_ で呼び出しているだけで特に限定する修飾がなく、テンプレート引数に依存していません。結果、これは最初の名前解決の際にマッチングされます。
14
14
 
15
15
 
16
16
 
17
- つまり、最初の名前解決時、使う側は「あるもの」なので名前解決しようとします。しかし、その時、規定クラスの member_ はテンプレート引数に依存しているので無視されるため、名前解決エラーになります。
17
+ つまり、最初の名前解決時、使う側は「あるもの」なので名前解決しようとします。しかし、その時、規定クラスの member_ はテンプレート引数に依存しているので無視され、名前解決エラーになります。
18
18
 
19
19
 
20
20
 

1

微修正

2019/03/13 13:53

投稿

Chironian
Chironian

スコア23272

test CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
 
10
10
 
11
- `Base<Derived<SomeType>, SomeType>`は、SomeTypeが決まらないと決まりません。なので、そのメンバ変数のmember_も確定しません。(仮にint型だったとしても同様です。Baseが特殊化されていて、特殊化の方にはmember_がないことも許されます。)
11
+ `Base<Derived<SomeType>, SomeType>`は、SomeTypeが決まらないと決まりません。なので、そのメンバ変数のmember_も確定しません。(仮にint型だったとしても同様です。Baseが特殊化されていて、特殊化の方にはmember_がないことも許されますから。)
12
12
 
13
13
  しかし、使う側は member_ で呼び出しているだけで特に限定する修飾がなく、テンプレート引数に依存していません。結果、これは最初の名前解決の際に無視されます。
14
14