Это не имеет смысла для меня. Шаблон функции не является «неявным встроенным». Вы должны явно объявить его «встроенным», чтобы сделать его встроенным.
Это не значит, что звонки на него являются или не являются встроенными. Это полностью решение компилятора. Поскольку шаблон может быть определен в нескольких единицах перевода (при условии, что каждое определение придает шаблону одинаковое поведение), добавление inline
к такому шаблону не имеет большого эффекта, как я вижу. Единственный эффект - сказать оптимизатору, что вы хотите, чтобы вызовы шаблона функции были встроенными, из того, что я вижу.
Создание шаблона функции static
совершенно разумно. Это позволяет определить шаблон в нескольких единицах перевода, причем каждое определение имеет свое поведение. Из-за static
шаблоны будут иметь внутреннюю связь, что означает, что они являются локальными для своего модуля перевода и не будут конфликтовать.
Размещение static
для функций и шаблонов функций, тем не менее, не зависит от помещения inline
для них. static
и inline
не зависят от C ++, как , они находятся в C99 .