回答編集履歴
2
ミス修正
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
微修正
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
|
|