Kiedy usuwanie instancji szablonu jest lepsze niż usunięcie przeciążenia innego niż szablon?
Załóżmy, że mam szablon, który działa z surowymi wskaźnikami:
template<typename T>
void processPointer(T* ptr);
Nie chcę tego nazywaćvoid*
wskazówki. Wygląda na to, że mam dwie możliwości. Mogę usunąć przeciążenie bez szablonu:
void processPointer(void*) = delete;
Lub mogę usunąć instancję szablonu:
template<>
void processPointer<void>(void*) = delete;
Deklarowanie przeciążenia bez matrycy jest łatwiejsze (brak futzowania przy pomocy nawiasów kątowych). Czy istnieją powody, dla których wolałbym zamiast tego usunąć instancję szablonu?