Size: a a a

2020 April 05

CD

Constantine Drozdov in pro.cxx
Alexander Zaitsev
а как ты первый написать хочешь? кто будет контролировать, что таймер не помер?
никто, написано же, событием не владеет владелец
второй случай это первый случай с shared control block, в котором лежит вызываемое
источник

AZ

Alexander Zaitsev in pro.cxx
ок, значит пойду парочку своих врапперов напишу
источник

CD

Constantine Drozdov in pro.cxx
т.е. событием все еще владеет очередь, но внутри лишняя косвенность, которая позволяет отзывать событие из запостившего
источник

AT

Andrew Titov in pro.cxx
Скажите, пожалуйста, почему inline non-static member function может отсутствовать в таблице символов? Не могу понять, какой linkage используется по умолчанию таких функций.

Пример:
https://github.com/yuri-pechatnov/caos_2019-2020/tree/master/sem22-dynamic-lib#-%D0%BE%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8-%D1%81-%D1%81
источник

NP

Nikita Provotorov in pro.cxx
Andrew Titov
Скажите, пожалуйста, почему inline non-static member function может отсутствовать в таблице символов? Не могу понять, какой linkage используется по умолчанию таких функций.

Пример:
https://github.com/yuri-pechatnov/caos_2019-2020/tree/master/sem22-dynamic-lib#-%D0%BE%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8-%D1%81-%D1%81
так там в каждой единице трансляции же будет своя копия
источник

NP

Nikita Provotorov in pro.cxx
* в каждой которая использует
источник

NP

Nikita Provotorov in pro.cxx
собсна inline как раз об этом
источник

ДЛ

Дмитрий ⬡ Лапшин in pro.cxx
А вопрос всё ещё по делу, по умолчанию должна быть external linkage.
источник

ДЛ

Дмитрий ⬡ Лапшин in pro.cxx
Andrew Titov
Скажите, пожалуйста, почему inline non-static member function может отсутствовать в таблице символов? Не могу понять, какой linkage используется по умолчанию таких функций.

Пример:
https://github.com/yuri-pechatnov/caos_2019-2020/tree/master/sem22-dynamic-lib#-%D0%BE%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8-%D1%81-%D1%81
Я подозреваю компилятор оптимизирует и считает, что раз inline-функция не ODR-used, то не нужна она в объектом файле с символом (кому надо сам допишет). Попробуй устроить ODR-use, скажем адрес взять и куда-то передать.
источник

m

magras in pro.cxx
А почему вы ее называете inline? Без шаблона она не inline, на сколько я помню.
источник

NP

Nikita Provotorov in pro.cxx
magras
А почему вы ее называете inline? Без шаблона она не inline, на сколько я помню.
нешаблонные методы класса определенные в месте объявления тоже inline
источник

NP

Nikita Provotorov in pro.cxx
Дмитрий ⬡ Лапшин
А вопрос всё ещё по делу, по умолчанию должна быть external linkage.
почему?
источник

m

magras in pro.cxx
Nikita Provotorov
нешаблонные методы класса определенные в месте объявления тоже inline
И в правду:
A function defined entirely inside a class/struct/union definition, whether it's a member function or a non-member friend function, is implicitly an inline function.
источник

ДЛ

Дмитрий ⬡ Лапшин in pro.cxx
Nikita Provotorov
почему?
А почему нет? Вроде inline не меняет linkage, и если она по умолчанию external, то и должна остаться.
источник

AT

Andrew Titov in pro.cxx
Дмитрий ⬡ Лапшин
Я подозреваю компилятор оптимизирует и считает, что раз inline-функция не ODR-used, то не нужна она в объектом файле с символом (кому надо сам допишет). Попробуй устроить ODR-use, скажем адрес взять и куда-то передать.
Написал функцию, которая вызывает SumB (inline-функция из примера) — сработало (SumB появилась в таблице символов). Видимо, ваше предположение верно.
источник

ДЛ

Дмитрий ⬡ Лапшин in pro.cxx
Andrew Titov
Написал функцию, которая вызывает SumB (inline-функция из примера) — сработало (SumB появилась в таблице символов). Видимо, ваше предположение верно.
Про вызов, кстати, сомневаюсь что он гарантирует (ведь могла быть заинлайнена и ладно).
источник

AT

Andrew Titov in pro.cxx
Дмитрий ⬡ Лапшин
Про вызов, кстати, сомневаюсь что он гарантирует (ведь могла быть заинлайнена и ладно).
Ну, там объект нужно создать, чтобы её вызвать.
источник

CD

Constantine Drozdov in pro.cxx
Andrew Titov
Скажите, пожалуйста, почему inline non-static member function может отсутствовать в таблице символов? Не могу понять, какой linkage используется по умолчанию таких функций.

Пример:
https://github.com/yuri-pechatnov/caos_2019-2020/tree/master/sem22-dynamic-lib#-%D0%BE%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8-%D1%81-%D1%81
Если речь про динамические либы, то обычно inline функции не экспортируют
источник

ЕЕ

Егор Егор in pro.cxx
Такая проблема const wchar_t не преобразуется в LPSTR
источник

PK

Pavel Kazakov in pro.cxx
const wchar_t или const wchar_t*?
источник