Size: a a a

2020 September 25

ДЛ

Дмитрий ⬡ Лапшин... in pro.cxx
Albyc
Получается, у inline это основная функция? Часто замечал в проектах использование inline один раз для одного определения и последующего встраивания компилятором. Это даёт какой-то буст по скорости?
Много определений как раз с целью, чтобы тело можно было таскать между единицами трансляции и за счёт этого встраивать оптимизатором.
источник

ДЛ

Дмитрий ⬡ Лапшин... in pro.cxx
Будет ли это встраивание на самом деле отдельный разговор. Хотя многие бы не отказались от inline_only.
источник

АК

Александр Караев... in pro.cxx
Albyc
Получается, у inline это основная функция? Часто замечал в проектах использование inline один раз для одного определения и последующего встраивания компилятором. Это даёт какой-то буст по скорости?
inline не имеет отношения к встраиванию
источник

ПК

Побитый Кирпич... in pro.cxx
Дмитрий ⬡ Лапшин
Будет ли это встраивание на самом деле отдельный разговор. Хотя многие бы не отказались от inline_only.
Для этого есть forceinline
источник

ПК

Побитый Кирпич... in pro.cxx
Albyc
Получается, у inline это основная функция? Часто замечал в проектах использование inline один раз для одного определения и последующего встраивания компилятором. Это даёт какой-то буст по скорости?
Это даёт компилятору возможность видеть тело функции, что положительно сказывается на встраивании
источник

ДЛ

Дмитрий ⬡ Лапшин... in pro.cxx
Побитый Кирпич
Для этого есть forceinline
В стандарте нет, я имел в виду.
источник

A

Albyc in pro.cxx
Дмитрий ⬡ Лапшин
Много определений как раз с целью, чтобы тело можно было таскать между единицами трансляции и за счёт этого встраивать оптимизатором.
Ну то есть если определение всего одно, то смысла использовать inline для функции нет и это просто неграммотное использьзование средств языка?
источник

ДЛ

Дмитрий ⬡ Лапшин... in pro.cxx
Albyc
Ну то есть если определение всего одно, то смысла использовать inline для функции нет и это просто неграммотное использьзование средств языка?
Если функция нужна в рамках одной единицы трансляции то причин использовать нет. Если нужна в нескольких — значит или её будут вызывать по символу, или её определение должно приехать в несколько единиц трансляции для попытки встраивания, и вот тут чтобы не ломать ODR нужен inline.
источник

ПК

Побитый Кирпич... in pro.cxx
Albyc
Ну то есть если определение всего одно, то смысла использовать inline для функции нет и это просто неграммотное использьзование средств языка?
Определение всегда одно
источник

ДЛ

Дмитрий ⬡ Лапшин... in pro.cxx
Древние и тупые компиляторы может встраивают только помеченные inline-функции, но это уже, опять, игры с конкретным компилятором.
источник

A

Albyc in pro.cxx
Дмитрий ⬡ Лапшин
Если функция нужна в рамках одной единицы трансляции то причин использовать нет. Если нужна в нескольких — значит или её будут вызывать по символу, или её определение должно приехать в несколько единиц трансляции для попытки встраивания, и вот тут чтобы не ломать ODR нужен inline.
Дошло. Спасибо!
источник

ПК

Побитый Кирпич... in pro.cxx
Albyc
Ну то есть если определение всего одно, то смысла использовать inline для функции нет и это просто неграммотное использьзование средств языка?
inline есть смысл использовать если ты пишешь определение функции или переменной в хэдере
источник

A

Alex in pro.cxx
Как сконвертировать std::filesystem::file_time_type в std::chrono::system_clock::time_point?
источник

A

Alex in pro.cxx
не через time_t - такое решение есть на SO, но мне кажется, что должно быть можно проще. С++ 17.
источник

NP

Nikita Provotorov in pro.cxx
Alex
Как сконвертировать std::filesystem::file_time_type в std::chrono::system_clock::time_point?
не понял, это же и так алиас для std::chrono::time_point?
источник

A

Alex in pro.cxx
это implementation dependent
источник

A

Alex in pro.cxx
в стандарте нет такого требования, и в моём случае это тайм пойнт какого-то другого clock
источник

A

Alex in pro.cxx
очередная проблема из-за желания комитета сидеть на всех стульях сразу и разрешать все мыслимые и немыслимые случаи и варианты. Чёртова гибкость.
источник

AL

Anton Lashkov in pro.cxx
В с++20 будет std::chrono::clock_cast, наверное нужен он
источник

A

Alex in pro.cxx
Да, видел на SO упоминания, но как сейчас жить?
источник