Так как шаблоны определены в заголовках, а компилятор может определить, выгодно ли вложение функции, имеет ли это смысл? Я слышал, что современные компиляторы лучше знают, когда встроить функцию и игнорировать подсказку inline
.
edit: Я хотел бы принять оба ответа, но это невозможно. Чтобы закрыть проблему, я принимаю ответ phresnel, потому что он получил большинство голосов, и он формально прав, но, как я упоминал в комментариях, я рассматриваю Puppy и Компонент 10 отвечает как правильные, с другой точки зрения.
Проблема заключается в семантике С++, которая не является строгой в случае ключевого слова inline
и вставки. phresnel говорит "напишите в строке, если вы это имеете в виду", но то, что на самом деле подразумевается под inline
, не ясно, поскольку оно эволюционировало от своего первоначального значения до директивы, которая "останавливает компиляторы, обвиняющие нарушения ODR", как Puppy.