tdiff
Ну да, в этом и дело
Alexander "SonnySlave"
да
Alexander "SonnySlave"
Ну да, в этом и дело
и если мы запретим операторы, то сласинга не будет
Alexander "SonnySlave"
а для копирования можем какую-нибудь спец. функцию написать для работы с этим (для копирования какой-нибудь copy() or clone())
Alexander "SonnySlave"
ну а как ты слайсинг получишь?
Alexander "SonnySlave"
аккуратнее с этим 😊
tdiff
https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#Rc-copy-virtual
Viktor
Подскажите, в какой области памяти живут исключения? Не рид онли? Например, в выражении catch (ExceptionType& e) куда ссылается e?
Viktor
🦥Alex Fails
return-orienting programming
kitsu
ret2libc чутка попроще для понимания
Igor
товарищи с опытом использования libclangTooling, как побороть вот это чудо? https://clang.llvm.org/docs/LibTooling.html#libtooling-builtin-includes если самодельная тулза запускается не из /usr/bin, то она не может найти кланговский stddef.h, и соответственно весь парсинг идёт коню под хвост
void *
У меня не совсем libclangtooling была, но я просто добавил -I<путь к кланговским инклюдам>
Viktor
Неа, это эксплуатируется хакерами только так
А если не в рид онли, то где? Я слышал, что в какой то специально отведенной области.
Igor
У меня не совсем libclangtooling была, но я просто добавил -I<путь к кланговским инклюдам>
а как это помогает? речь же не про то что кланг при сборке не может найти хедеры, а про то что собранный бинарник жалуется когда пытаешься скормить ему какой-нибудь .cpp
Square
А если не в рид онли, то где? Я слышал, что в какой то специально отведенной области.
Если действительно хочешь разобраться в вопросе, начни с чтения какого нить msdn
Square
Или Linux programming interface
Square
https://msdn.microsoft.com/en-us/library/windows/desktop/ms679270(v=vs.85).aspx
Square
#book #linux #api
Alexander "SonnySlave"
LEWG unanimously decided to forward standard library concepts to LWG for C++20
Igor
LEWG unanimously decided to forward standard library concepts to LWG for C++20
т.е. концептам быть или концепты будет рассматривать другая группа после завершения работы над 20?
Igor
йей!
Alexander "SonnySlave"
LWG занимается вордингом, встраиванием в Стандарт и так далее. LEWG занимается именно новыми фичами Они конечно могут не согласиться и пульнуть обратно, но это вряд ли.
Igor
прям опередил вопрос "чем LWG отличается от LEWG" 😊
Alexander "SonnySlave"
это всё опыт)
Alexander "SonnySlave"
но вообще, это очень крутая новость. Концепты это круто. Ждём новостей про подвижки с модулями, новости о Ranges TS, etc.
Alexander "SonnySlave"
также хотелось бы комментариев по новой ревизии Reflection
Igor
товарищи с опытом использования libclangTooling, как побороть вот это чудо? https://clang.llvm.org/docs/LibTooling.html#libtooling-builtin-includes если самодельная тулза запускается не из /usr/bin, то она не может найти кланговский stddef.h, и соответственно весь парсинг идёт коню под хвост
поднял глаза выше Now you can run clang-check over files in the project by specifying the build path as first argument and some source files as further positional arguments: $ cd /path/to/source/llvm $ export BD=/path/to/build/llvm $ $BD/bin/clang-check -p $BD tools/clang/tools/clang-check/ClangCheck.cpp ну видимо это действительно такой официальный подход "шланговские тулзы запускать только из /usr/bin, для всех остальных юзкейсов пишите костыльные враппер-скрипты" ._.
Alexander "SonnySlave"
но я запускаю не из /usr/bin 😊
Alexander "SonnySlave"
я запускаю сбилженый
Igor
научи, сенсей
Alexander "SonnySlave"
а вот откуда он хедеры тянет, мне неведомо
Alexander "SonnySlave"
я пускаю вот так: /home/zamazan4ik/OpenSource/llvm/build/bin/clang-check -ast-dump performance-constexpr-function.cpp —
Igor
я стабильно наблюдаю вот такую бодягу https://i.imgur.com/tn0SfMQ.png если его переложить куда нужно, то он действительно находит нужный stddef.h и правильно обрабатывает файл
Alexander "SonnySlave"
https://teamup.com/kserbups66uis3d8j6
Alexander "SonnySlave"
ЯННП
Alexander "SonnySlave"
ммм, циклическая зависимость. Удачи 😊
Anton
Искать реверс-инженегра
Vladislav
Искать реверс-инженегра
чтобы обнаружить что там внутри какой-нибудь RSA
🦥Alex Fails
кек, #classic
Ender
Реверс инженер в треде, консалтинг 200 баксов
Антон
Подскажите хороший учебник про BCPP
Co(n)stantine👨‍🔬
BCPP? Антон , что это?
Andrey
Програмка, случаем не ransomware?
Ender
похоже на ransomware, да. короче суть вот в чём. код, который высветился, это может быть какой-нибудь пароль, а программа ждёт наоборот его хеш, по алгоритму, известному только хацкеру. или наоборот. или это данные, которые зашифрованы публичным ключом хацкера. Которые у тебя есть на машине. Отправляешь ему, он их расшифровывает, и отправляет тебе. или нет. Прога просто сравнит, получились ли 2 мусора одинаковыми или нет. В целом, есть куча вариантов, смотря что придумал хацкер. Это может быть и вовсе какой-то частный случай имплементации алгоритма диффи-хелмана. Например, то, что программка высветила, это число, которое загадала машинка, число, которое загадал хацкер программка откуда-то стянет, а у тебя попросит сам ключ, который машинка может вычислить и проверить, и хацкер может вычислить и посмотреть, только ты на него посмотреть не сможешь, потому что ты ниибёшь.
firther
А лучше просто купить пробник.
Alexander "SonnySlave"
http://www.opennet.ru/opennews/art.shtml?num=48264
Alexander "SonnySlave"
http://en.cppreference.com/w/cpp/language/default_initialization
Alexander "SonnySlave"
Default initialization is performed in three situations: 1) when a variable with automatic, static, or thread-local storage duration is declared with no initializer; Но почему в этом списке есть automatic?
Alexander "SonnySlave"
тут не совсем ясно, так как вроде как performed default initialization. Но с другой стороны nothing is done; with automatic storage duration variables are initialized to indeterminate values
Danil
Что имеется в виду под локальной продолжительностью хранения ?
Alexander "SonnySlave"
эм... ну, обычная переменная на стеке в области видимости
Anonymous
я незнаю C++, но может Default Ini.. значит - что не нужно указывать значение, и оно само какоенибудь да будет, а не то что там обязательно будут ноли. Но конечно же мне нельзя верить, и я не читал что там по ссылке.
🐼 Sild
об этом в ссылке и написано - что в случае automatic произойдет default initialization с initialized to indeterminate values)
Alexander "SonnySlave"
об этом в ссылке и написано - что в случае automatic произойдет default initialization с initialized to indeterminate values)
в этом и вопрос - считается ли инициализация в undeterminate выполненной инициализацией? Это важно вот для какого пункта: http://en.cppreference.com/w/cpp/language/constexpr the function body must be either deleted or defaulted or contain any statements except: a definition of a variable for which no initialization is performed.
Viktor
е ссылается на живой объект в памяти а вот catch ссылается на landing pad в read-only
А как тогда допускается биндинг к неконстантному объекту ? catch(exception& e)
Viktor
потому что он неконстантный
Неконстантный объект в рид онли памяти?
Berkus
Неконстантный объект в рид онли памяти?
прочитай еще раз что я написал, в рид онли лежит только код ландинг-пада
Viktor
Пойду гуглить что есть лендинг пад.
🐙 Antony
в этом и вопрос - считается ли инициализация в undeterminate выполненной инициализацией? Это важно вот для какого пункта: http://en.cppreference.com/w/cpp/language/constexpr the function body must be either deleted or defaulted or contain any statements except: a definition of a variable for which no initialization is performed.
Не считается. С constexpr основное правило: если это UB, или явный рантайм, или ведеёт к разным результатам на разных платформах - это нельзя подсчитать как constexpr
Anonymous
а это что? int main() { auto constexpr func = []() { const int v; }; } gcc -std=c++17 cel.cpp -fpermissive Но я не могу спрорить с Антоном.
🐙 Antony
Кстати, похоже что в С++20 можно будет не писать typename http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0634r2.html
🐙 Antony
а это что? int main() { auto constexpr func = []() { const int v; }; } gcc -std=c++17 cel.cpp -fpermissive Но я не могу спрорить с Антоном.
Это -fpermissive. А ещё это constexpr переменная указатель на функцию, а не вычисление функции на этапе компиляции Без -fpermissive main.cpp: In lambda function: main.cpp:3:15: error: uninitialized const 'v' [-fpermissive] const int v; ^ main.cpp:3:15: warning: unused variable 'v' [-Wunused-variable]
Антон
Да
Антон
BCPP? Антон , что это?
Антон
Borland CPP ?
🐙 Antony
Я это правило знаю, но решил перестраховаться
Я тоже перестраховался: int main() { auto constexpr func = []() { int v; return v; }; constexpr auto v = func(); } выдаёт main.cpp: In function 'int main()': main.cpp:7:26: error: call to non-constexpr function 'main()::<lambda()>' constexpr auto v = func(); ~~~~^~ main.cpp:2:28: note: 'main()::<lambda()>' is not usable as a constexpr function because: auto constexpr func = []() { ^ main.cpp:3:9: error: uninitialized variable 'v' in 'constexpr' function int v; ^ main.cpp:7:18: warning: unused variable 'v' [-Wunused-variable] constexpr auto v = func(); ^
Антон
Архангельский?
Да видел не очень