оператора присваивания?
Читаю вот, пишут чтобы не допустить (a1 = a2) = a3, но зачем?
Незачем, глупость.
понятно, а это правда что определять перегрузку всяких !=, == лучше в хедере ? типа будет inline
Если она определена внутри класса - inline, на сколько я знаю
Хм... ладно
Стоит различать несколько применений ключевого слова инлайн, первое - пожелание к компилятору заменить вызов функции непосредственно на ее код, второе - показать, что мы в курсе, что компилятор может встретить несколько определений, но они равнозначны, и компилятор может взять любое. Первое уже устарело, и компилятор справится с этим лучше и без нас. Без второго, мы получим нарушение ODR в вашем примере, если заголовок будет включён в несколько файлов А метод определённый внутри объявления класса будет неявно inline.
А можно подробнее насчёт второго? И если метод определять внутри объявления класса, то фактически это то же самое, если бы мы явно указали inline в условном .cpp файле?
ODR найди на CPR и прочитай
Да в общем-то подробности тут сложно добавить. Если у нас, например, хэдер-онли библиотека, которая содержит ряд свободных функций, то без использования in-line мы не сможем скомпилировать свой код, с ее использованием в более чем одном файле. Произойдет нарушение ODR Да
В .cpp файле нет смысла делать inline функции
Есть, для инлайн хинта
А он хинтит?
inline - это не инлайн-хинт
Это инлайн хинт в том числе
Обсуждают сегодня