Ключевое слово static
дает определение "внутренняя связь", что означает, что было бы законно присвоить имени DeleteArray
другое значение или другое определение в другом исходном файле.(Как и в случае с static void f();
или static int i;
.) Но я не могу себе представить, что кто-то захочет это сделать.
Использование static
таким способом в C ++ не рекомендуется.Это объявление, вероятно, было бы лучше без ключевого слова static
, делая его неявно extern
(и все же inline
).В этом случае компоновщику будет разрешено объединить любые определения DeleteArray<T>(T*)
для одного и того же T
из нескольких объектов, поскольку они будут одним и тем же.