inline
не имеет смысла внутри класса. Если бы вы определили функции вне класса, то это указывало бы на внутреннюю связь. Но в вашем текущем коде нет никакой цели: все функции, определенные в классе, являются встроенными.
Для компилятора inline
просто означает, что имя не видно за пределами модуля компиляции. В этом отношении он похож на глобальный static
. Кроме этого, компилятор может свободно выполнять вызов функции, вставляя любым удобным для него способом.
В частности, оптимизатор может выбрать замену вызова содержимым функции. Это то, что вам нужно, но оно (почти полностью) не связано с ключевым словом inline
, несмотря на его название.
(Кстати, это не имеет отношения к шаблонам и метапрограммированию шаблонов.)