Alexander "SonnySlave"
к тому же в том же tidy легко самому писать
Alexander "SonnySlave"
Voting via sublime text? оригинально
а какая разница?) надо было через vim
Berkus
Why not?)
я не давал оценки тому нужно это или не нужно)
Andrey
Всем привет! Подскажите, как это может работать https://pastebin.com/KHUpnLRS . И для чего так делают?
Aidar
Очень хреновые эвристики
Aidar
Очень хреновая декомпидяция
Andrey
Это не может быть некая обфускация? Как такое вообще может возникнуть в процессе декомпиляции, если ничего подобного не было?
Anatoly
Это не может быть некая обфускация? Как такое вообще может возникнуть в процессе декомпиляции, если ничего подобного не было?
похоже на работу декомплилятора. так он вызывает метод вектора расположенного по адресу (_DWORD *)(v1 + 780) и передает туда &v14
Andrey
Мне непонятны штуки вроде  v14 = (void **)(" (GNU) 4.4.3" + 3);
Andrey
Может это обфускация константного адреса по которому пишется какое-то значение?
🐙 Antony
https://developers.redhat.com/blog/2018/03/15/gcc-8-usability-improvements/
Да! Наконец таки оно будет подсказывать с инклюдами :)
🐙 Antony
Кстати, в EWG одобрили constexpr контейнеры http://open-std.org/JTC1/SC22/WG21/docs/papers/2018/p0784r1.html так что есть все шансы к С++20 писать: constexpr std::string result = foo();
Крылатый
УРА
Крылатый
constexpr строки!
Igor
йей!
Andrey
И вектора!
🐙 Antony
И мапы!
Крылатый
Anatoly
скоро и main не будет нужен, программа выполнится до main в compile time
🐙 Antony
скоро и main не будет нужен, программа выполнится до main в compile time
Нет, constexpr корутины хотят сделать где-то к C++23 только... Придётся подождать
Крылатый
И самое главное.
Крылатый
constexpr std::string можно будет использовать как парамтер шаблона или нет? 🤔
🐙 Antony
constexpr std::string можно будет использовать как парамтер шаблона или нет? 🤔
хм... я только сейчас осознал, почему Луи активно поддерживает эту идею
Alexander "SonnySlave"
хм... я только сейчас осознал, почему Луи активно поддерживает эту идею
и каким образом они хотят это сделать? как они борются с динамическими аллокациями?
Alexander "SonnySlave"
Там есть компайл тайм строки?
Berkus
ннннууу даа
Alexander "SonnySlave"
А, стоп. Там же строки нормальные
Alexander "SonnySlave"
А компайл тайм вектор есть?
Anonymous
ты dlang.org же видал? там и строки, и вектор.
Alexander "SonnySlave"
Ну dlang то могёт :)
Berkus
там не совсем вектор, слайс но суть та же
Anonymous
ну да, ведь он там не нужен.
Anonymous
вектор.
Anton
и каким образом они хотят это сделать? как они борются с динамическими аллокациями?
Насколько я понял, new и delete выражения, либо std::allocator<T>::allocate/deallocate в компайл-тайме работают особым «магическим» образом, возвращая поинтеры, которые в имплементации компилятора представляют метаобьекты, хранящие также длину аллоцируумого блока, чтобы трекать UB
Anton
Это я буквально процитировал пропозал
Anton
Короче, хочешь свой алгоритм санитизировать - запусти его в компайл-тайме
Александр
Кстати, в EWG одобрили constexpr контейнеры http://open-std.org/JTC1/SC22/WG21/docs/papers/2018/p0784r1.html так что есть все шансы к С++20 писать: constexpr std::string result = foo();
да это же гениально. зачем делать constexpr_allocator, если можно сделать allocator constexpr по умолчанию!
Alexander "SonnySlave"
ну да, осталось только такой аллокатор написать 😊
Александр
ну, проблема остаётся прежней, да. зато "перекомпиль свою прогу с -std=c++20 и она пересчитает половину кода в constexpr"
Alexander "SonnySlave"
то есть было бы очень прикольно посмотреть на эту имплементацию: constexpr std::string str = "azazaza"; constexpr func() { str.push_back('a'); }
Alexander "SonnySlave"
если сделают, будет круто
Nik
почему нельзя отдать это на откуп компилятору?
Nik
Чтобы он сам смотрел, что можно вычислить в компайлтайме и вычислял
Nik
а не помечать все килотоннами constexpr
Anton
а не помечать все килотоннами constexpr
потому что это трэйдофф компайл-тайма и ран-тайма
Anonymous
потому что кому-то лень было думать, когда придумывал constexpr...
Anton
constexpr это контракт, а не подсказка компилятору: std::array<T, a_terribly_large_nonconstexpr_function_that_takes_too_long_to_evaluate(...)> huina; // and_now_compiler_happens_to_not_evaluate_the_function_at_compiletime_and_gives_me_an_error; int zalupa[a_terribly_large_nonconstexpr_function_that_takes_too_long_to_evaluate(...)]; // and now we need to introduce VLAs to C++ that's even worse idea...
Berkus
Berkus
а может ты просто ни разу не пробовал что-то создать глобальное?
Anonymous
примерно так и есть.
Pavel
A Usable C++ Dialect That Is Safe Against Memory Corruption (Score: 100+) Link: http://j.mp/2pfp49G Comments: http://j.mp/2HzZVgL
Berkus
A Usable C++ Dialect That Is Safe Against Memory Corruption (Score: 100+) Link: http://j.mp/2pfp49G Comments: http://j.mp/2HzZVgL
ну да, ебстись с этим или просто взять раст.. даже не знаю что надежнее
Berkus
хотя нет, знаю
Anonymous
Людям гарантии нужны.
Я нимного не могу понять, какие им нужны гарантии? Если у нас есть функция из чьей-то библиотеки, такая что автор ее не думал про CT. И вот мы хотим ее в CT (и она в принципе могла бы, допиши мы туда constexpr). Что лучше писать constexpr или нет? А любителям гарантий можно было бы и принудительно указывать что функция должна мочь в CT. Но как тут уже написали "может кому-то было лень думать в 1983 году?".
Anonymous
я для компилятора или он для меня?
Cuno
я для компилятора или он для меня?
Странный вопрос. Компилятор это обычный софт, мысли он читать не умеет.
Berkus
Странный вопрос. Компилятор это обычный софт, мысли он читать не умеет.
однако понять что какая-то штука может быть constexpr он вполне в состоянии
Крылатый
Над просто писать на Haskell
Berkus
оптимизатор же выкидывает лишние вычисления
Nik
Странный вопрос. Компилятор это обычный софт, мысли он читать не умеет.
пусть проверяет все юниты на то, могут ли они быть констекспр, и если могут, то выполняет их в СТ
Anonymous
Странный вопрос. Компилятор это обычный софт, мысли он читать не умеет.
constexpr нужен столько же сколько и inline - ни сколько.
Cuno
Просто это происходит уже на этапе оптимизации.
Berkus
https://www.reddit.com/r/programmingcirclejerk/comments/84sfza/the_upside_of_go_is_garbage_collection_the/dvsb8i8/ кек
Alexander "SonnySlave"
constexpr нужен столько же сколько и inline - ни сколько.
Ура, ещё один человек той же позиции, что и я
Alexander "SonnySlave"
Alexander "SonnySlave"
И для constexpr if