(この質問では、 Abrahams/Dimov の例に関する知識があると想定しています。)
次のようなサードパーティ コードがヘッダーに含まれているとします。これは変更できません。
template<class T> void f(T); // (1) base template 1
template<class T> void f(T *); // (2) base template 2
template<> void f<>(int *); // (3) specialization of (2)
質問は:
上記の宣言がそのまま与えられている場合、 (たとえば)の場合にベース テンプレート 1 を特殊化することは可能ですか?T = int *
または、ベース テンプレート 2 の単なる宣言は、ベース テンプレート 1 を (少なくともポインターに対して) 特殊化できなくなったことを意味しますか?