Size: a a a

2020 August 05

АК

Александр Караев... in pro.cxx
И Ivan
А как вообще ld_preload работает? Он по сути заставляет подгружать функции из подставленной библиотеки приоритетнее чем из остальных библиотек. Но это если библиотеки динамические. А можно ли так обмануть статическую библиотеку? Чем вызов функции из стат библиотеки отличается от вызова из дин библиотеки? Достаточно ли скомпилировать библиотеку с pic, или там чтото еще влияет?
при линковке статическая библиотека мало отличается от обычного объектника.
то есть вопрос примерно сводится к такому: "у меня есть a.cpp и b.cpp, в первом есть void foo() и я хочу написать во втором void foo() так, чтобы линкер забыл про первую реализацию из a.cpp"
источник

ИI

И Ivan in pro.cxx
Побитый Кирпич
ld_preload это при запуске, а стат. линковка при сборке происходит
А чем вызов статической функции отличается от вызова динамической? Да, функция может быть вызвана по абсолютному адресу, но разве fpic или pie не вызывает функцию по относительному адресу?
источник

ИI

И Ivan in pro.cxx
Александр Караев
при линковке статическая библиотека мало отличается от обычного объектника.
то есть вопрос примерно сводится к такому: "у меня есть a.cpp и b.cpp, в первом есть void foo() и я хочу написать во втором void foo() так, чтобы линкер забыл про первую реализацию из a.cpp"
Ну по сути да. Но библиотека какбы намекает, что ничего в ней поменять не получится
источник

АК

Александр Караев... in pro.cxx
И Ivan
Ну по сути да. Но библиотека какбы намекает, что ничего в ней поменять не получится
если это специфичная платформа и специфичный компилятор, я бы глянул, из чего состоит статическая библиотека
может в ней нужный символ помечен как weak и всё хорошо
источник

ИI

И Ivan in pro.cxx
Александр Караев
если это специфичная платформа и специфичный компилятор, я бы глянул, из чего состоит статическая библиотека
может в ней нужный символ помечен как weak и всё хорошо
Я думаю что почти наверняка нет.
+ я пробовал на абстрактном примере, и у меня не получилось
источник

PP

Pam Param in pro.cxx
/help@FailsBot
источник

F

FailsBot in pro.cxx
Pam Param
/help@FailsBot
USAGE:
/help - prints this message;
/vzhuh [message] - do vzhuh;
/start - info about bot.
Plugins
/battery
/cdecl
/dnsflag
/ebalo
/find_hobby
/findyourselfahobby
/getsmile
/isitblocked - checks <host> for RKN blocks;
/isitblockedraw
/qt_bugs
/reactos_bugs
/strelka
/strelkaraw
/suggest
/uptime - shows bot's uptime since last restart;
/waifu
/xkcd - shows random or numbered XKCD comix;
источник

PP

Pam Param in pro.cxx
/start@FailsBot
источник

F

FailsBot in pro.cxx
Pam Param
/start@FailsBot
Hello! I am the FailsBot, working as daemon process written in C with love and in rush in one night in Vim at Android device. Now I use the *stupid* person which hardcoded on main module therefore I have been often restarted. Stay determined! Feel free to write your suggestions to the bot's author in the @fludpac chat.
источник

A

Alex in pro.cxx
а std::optional может оборачивать ссылку?
источник

АК

Александр Караев... in pro.cxx
Alex
а std::optional может оборачивать ссылку?
нет, только reference_wrapper
источник

A

Alex in pro.cxx
Хм, спасибо. Мне сначала показалось, что MSVC это проглотил, после чего и решил уточнить, но вот теперь докомпилилось, и вижу, что не проглотил)
источник

AS

Anatoly Shirokov in pro.cxx
Alex
Хм, спасибо. Мне сначала показалось, что MSVC это проглотил, после чего и решил уточнить, но вот теперь докомпилилось, и вижу, что не проглотил)
буст поддерживал
источник

АК

Александр Караев... in pro.cxx
https://thephd.github.io/to-bind-and-loose-a-reference-optional
прекрасное чтиво на тему optional<ref>
источник

A

Alex in pro.cxx
Вот это я отстал от жизни, не знал, что reference_wrapper аж в С++11 появился. Спасибо за подсказку.
источник

ПК

Побитый Кирпич... in pro.cxx
Alex
а std::optional может оборачивать ссылку?
std::optional<T&> это T*
источник

A

Alex in pro.cxx
тоже верно!
источник

A

Alex in pro.cxx
да, что-то я намудрил, так лучше)
источник

а

а это кто in pro.cxx
Побитый Кирпич
std::optional<T&> это T*
У T* нет методов которые есть у optional<T&> значит это не одно и тоже
источник

ПК

Побитый Кирпич... in pro.cxx
а это кто
У T* нет методов которые есть у optional<T&> значит это не одно и тоже
Семантика указателя в частности это nullable ссылка
источник