Constantine
нет
Constantine
2-версии xor eax, eax
vladislav
оптимизация головного мозга, кмк
Constantine
Александр
а
Constantine
экстремальный случай
Александр
то есть устраивает unreachable?
Matwey
xor eax, eax это просто очиста регистра же
Александр
что-то типа ub_assert
Constantine
ну мне нравится синтаксис std::defined_behavior или std::undefined_behavior
Крылатый
Что за хуйня))
Александр
🤣
Anonymous
std:: что эта штука значит ?
Александр
Anonymous
Constantine
Constantine
это на самом деле релизная версия для большинства assert-ов
🐙 Antony
Constantine
Ну вот тут говорят, что в gcc реализовано
Constantine
https://godbolt.org/g/H31oG1
🐙 Antony
int to_digit_D2(int c)
[[expects: '0' <= c && c <= '0']]
{
return (int)(c - '0');
}
Constantine
хм...
Constantine
я просто подумал, что для текущего кода это практически бесплатная штука, потому что можно любой assert переводить в релизе в такое условие
Constantine
с контрактами это переписывать прямо таки
Constantine
и потом, я могу вспомнить примеры, когда контракт вот просто так не напишешь
🐙 Antony
int to_digit_D2(int c)
[[expects: '0' <= c && c <= '0']]
[[ensures res: res < 10 && res >= 0]]
{
return (int)(c - '0');
}
^ и вызывающий код тоже получит хинты к оптимизациям
Но да, с виртуальными функциями оно не совсем идеально работает
Constantine
Я помню условия, которые наложены на возврат вызова на переданных объектах
🐙 Antony
да, но и с undefined соптимизировать в таких случаях не получится
🐙 Antony
кажется...
Constantine
как раз получится, потому что там грубо говоря гарантируется, что optional передан в non-empty state
Constantine
о, нашел пример
for (auto proportion : preferences)
{
ASSERT_ARGUMENT(proportion >= 0 || proportion < -100.0);
if (proportion < -100.0) //merged cell
continue;
Constantine
проверку можно заменить на проверку знака
🐙 Antony
for (auto proportion : preferences)
{
[[assert: proportion >= 0 || proportion < -100.0]];
if (proportion < -100.0) //merged cell
continue;
🐙 Antony
кажется, что функционал похож 1:1
Constantine
а, понятно
Никита
А в proposal по контрактам предполагается что в случае нарушения контракта можно кинуть исключение? Мой текущий макрос ассерта примерно такой
CONTRACT_CHECK(condition, exception_type, message)
, и если в контрактах не будет возможности кинуть исключение нужного типа, то я только потеряю в функциональности от таких контрактов
Никита
в первой ревизии proposal я увидел только, что можно будет написать violation handler, в котором и можно кинуть исключение. Но, как я понял, таким образом получится кинуть только один тип исключения
🐙 Antony
Никита
Не совсем удобно, но все же лучше чем просто глобальный handler
🐙 Antony
Глобальный хендлер нельзя из соображений безопасности
🐙 Antony
По крайней мере так авторы предложения говорят )
Anonymous
А произвольный тип данных, объект представить как vector<uint8_t> с рефлексией завезут?
Никита
есть же надежда, что как TS в c++20 немного рефлексии появится
Anonymous
Дмитрий ⬡
Anonymous
Дмитрий ⬡
Планируют да, но я не читал конкретно, после статьи-обзора метаинтерфейсов пошёл успокоительное пить)
Рома
сори это была мышка
Vladislav
читайте правила, пожалуйста
🦥Alex Fails
Yuri
Есть шанс востановить часть реализаций методов из бинарника, если в нём есть дебаг символы, и я спокойно могу посмотреть заголовки классов?
PRoSToC0der
Yuri
Спасибо
Yuri
Так это уже готовый код, а как они это сделали? Меня сам способ интересует
PRoSToC0der
с помощью IDA
Yuri
Не руками же это делать
Александр
RattenKong 🦧🐀🦍️
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0984r0.pdf щто думаете?
Egor
1 апреля?
RattenKong 🦧🐀🦍️
Чел хочет задеприкейтить func_ptr()() и заменить функторы операций(+, -) и тд лямбдами
RattenKong 🦧🐀🦍️
1 апреля?
Оно в мейлинг листе...
Anonymous
в мейлинг листе-то шутить нельзя, конечно.
tdiff
Привет
Подскажите чатик по сетевому программированию пожалуйста
Anonymous
Привет
Подскажите чатик по сетевому программированию пожалуйста
Другие чаты
🕶 @ProCxx – чат для серьезных вопросов;
📚 @ProCxxLib – библиотека книг по языку C++, проектированию и программированию;
📰 @ProCxxNews – новости из мира C++, интересные статьи и пр.
🏗 @ProAlgorithms – чат по обсуждению вопросов проектирования, архитектуры программного обесепечения;
🌔 @ProLua – чатик по скриптовому языку Lua;
🤗 @fludpac – флудилка, чат по обсуждению всего;
🗯 @xthon – канал с цитатами участников pro.*
👥 @prodot – канал pro.*;
🌞 @flood – общий флуд канала @prodot;
🎓 supapro.cxx – чат помощи для новичков;
🌿 pro.git – чат по обсуждению Git;
⚔ pro.cxx.holywars – чат для любителей холиваров;
🕷pro.net – чат по .NET Framework;
🐧pro.linux – чат по Линуксу;
👾pro.linux.old – самая первая группа из коллекции pro.*. Вход по инвайтам, т.к. создатель группы удалился из telegram;
🖼 Opengl / opencl / Vulkan / etc gamedev – no-flood-чат по опенглу и пр. Читайте правила при входе! Пока не в системе pro.*
English chats
❤️ @undertale_chat – chat about the Undertale game;
🇬🇧 pro.english – chat about learning English.
tdiff
🦥Alex Fails
tdiff
Yura
ребят, а если мы хукаем виндовую функцию, мы можем подменить результат ее работы?
Yura
то есть например сымитировать, что функция проработала нормально и вернуть 1
Yura
100% ?
Constantine
Constantine
по крайней мере за все известные мне механизмы такого перехвата