У нас есть 2 метода для объявления функции в библиотеке только для заголовка. Они inline
и template<class= void>
. В boost
исходнике я вижу оба варианта. Пример следует:
inline void my_header_only_function(void)
{
// Do something...
return;
}
template<class = void> void my_header_only_function(void)
{
// Do something...
return;
}
Я знаю разницу в соответствии со стандартом C++. Тем не менее, любой C++ компилятор намного больше, чем просто стандартный, а также стандартный, часто неясный.
В ситуации, когда аргумент шаблона никогда не используется и где он не связан с рекурсивным вариационным шаблоном, есть (и какова) практическая разница между двумя вариантами для основных компиляторов?