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