template<class T>
void fun(T){}
template<>
int fun(int){return 0;}
この例を考えてみましょう。これはすべての実装によって拒否されます。ただし、現在の標準には、この明示的な特殊化宣言が不適切であると指定する説得力のある条項は見つかりませんでした。存在する場合、そのルールは何ですか?
さらに、潜在的に関連するルールは [temp.deduct.decl#2] である可能性があります。
そのように考慮された関数テンプレートのセットについて、部分的な順序付け ([temp.func.order]) が考慮された後に一致がないか、複数の一致がある場合、演繹は失敗し、宣言の場合、プログラムは病気です。 -形成された。
「一致」は何かを明確に定義していないため、ここでは「一致」の意味が十分に明確ではないと思います。