Начиная с 17-го стандарта благодаря inline можно инициализировать static поля внутри класса/структуры: struct Same { static inline int value = 5; };
@ДмитрийБузницкий-б3н2 жыл бұрын
Спасибо, Володя, за этот урок
@МаксимХвостов-м1й4 жыл бұрын
Спасибо Володя, но вы немного перепутали - стандарт частично упраздняет volatile, inline как уже отметили в комментариях давно является рекомендацией повышающий порог при котором компилятор решает делать функцию встраиваемой см Jason Turner C++ Weekly - Ep 136 - How `inline` Might Affect The Optimizer Если заглянуть в новый код GCC range library то можно заметить что разрабы inlin'ом не брезгуют, есть предложения добавления аналога force_inline в стандарт в виде атрибута. Инлайнить теперь можно статические переменные. Короче всё выглядит так что использование ключевого слова inline в C++ только развивается :)
@amir328064 жыл бұрын
Время покажет. :) Возможно inline постигнет такая же участь как и register.
@dominuspiritus4 жыл бұрын
inline ещё нужен, чтобы соблюдать правило odr. В Вашем примере было бы множественное определение (если делать include в main.cpp и lib.cpp). В этом случае этот keyword нужен, чтобы функция была определена единожды. По этой причине нужно все реализации функций в .h файлах помечать inline (если они находятся вне тела класса)
@Алексей-о9б4г4 жыл бұрын
Спасибо за видео!
@ИванШл3 жыл бұрын
Пэй Мэй от мира программирования
@nikolaysokolov90274 жыл бұрын
Спасибо!
@Cent729842 жыл бұрын
По вашему последнему примеру, компилятор ругается без слова инлайн, как его добавляю все ок компилируется)
@torskandinav46344 жыл бұрын
Не знаю почему в ++ хотят отказаться от inline, В kotlin я его использую для того что бы не было стирания типов, и это прям очень нужная иногда вещь, но опять inline надо с умом применять, тут я думаю так же.
@ИванОсинин-с7и4 жыл бұрын
Я дурак использовал инлайн с многоточием в аргументах функции
@torskandinav46344 жыл бұрын
в доках про это написано вроде, если ты про аналог джавовского vararg говоришь.
@BobiBobObana4 жыл бұрын
расскажи пожалуйста про cmake
@ИванОсинин-с7и4 жыл бұрын
На счет того, что инлайн ничего не сломает. Это не совсем правда. Если использовать многоточие в аргументах функции, то при обращении к аргументам вы получите мусор (естественно должна быть включена оптимизация, иначе инлайн вообще не применится)