Alexander "SonnySlave"
к тому же в том же tidy легко самому писать
Anonymous
Berkus
Why not?)
я не давал оценки тому нужно это или не нужно)
Andrey
Всем привет! Подскажите, как это может работать https://pastebin.com/KHUpnLRS . И для чего так делают?
Aidar
Aidar
Очень хреновые эвристики
Aidar
Очень хреновая декомпидяция
Andrey
Это не может быть некая обфускация? Как такое вообще может возникнуть в процессе декомпиляции, если ничего подобного не было?
Andrey
Мне непонятны штуки вроде  v14 = (void **)(" (GNU) 4.4.3" + 3);
Andrey
Может это обфускация константного адреса по которому пишется какое-то значение?
🐙 Antony
🐙 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
Крылатый
И самое главное.
Крылатый
constexpr std::string можно будет использовать как парамтер шаблона или нет? 🤔
🐙 Antony
Berkus
Alexander "SonnySlave"
Там есть компайл тайм строки?
Berkus
ннннууу даа
Alexander "SonnySlave"
А, стоп. Там же строки нормальные
Alexander "SonnySlave"
А компайл тайм вектор есть?
Anonymous
ты dlang.org же видал? там и строки, и вектор.
Alexander "SonnySlave"
Ну dlang то могёт :)
Berkus
Berkus
там не совсем вектор, слайс но суть та же
Anonymous
ну да, ведь он там не нужен.
Anonymous
вектор.
Anton
Это я буквально процитировал пропозал
Anton
Короче, хочешь свой алгоритм санитизировать - запусти его в компайл-тайме
Александр
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
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
Anonymous
примерно так и есть.
Cuno
Pavel
A Usable C++ Dialect That Is Safe Against Memory Corruption (Score: 100+)
Link: http://j.mp/2pfp49G
Comments: http://j.mp/2HzZVgL
Berkus
Berkus
хотя нет, знаю
Max
Anonymous
Людям гарантии нужны.
Я нимного не могу понять, какие им нужны гарантии?
Если у нас есть функция из чьей-то библиотеки, такая что автор ее не думал про CT. И вот мы хотим ее в CT (и она в принципе могла бы, допиши мы туда constexpr).
Что лучше писать constexpr или нет?
А любителям гарантий можно было бы и принудительно указывать что функция должна мочь в CT.
Но как тут уже написали "может кому-то было лень думать в 1983 году?".
Cuno
Anonymous
я для компилятора или он для меня?
Крылатый
Над просто писать на Haskell
Berkus
оптимизатор же выкидывает лишние вычисления
Anonymous
Berkus
Cuno
Cuno
Просто это происходит уже на этапе оптимизации.
🦥Alex Fails
Berkus
https://www.reddit.com/r/programmingcirclejerk/comments/84sfza/the_upside_of_go_is_garbage_collection_the/dvsb8i8/ кек
Крылатый
Alexander "SonnySlave"
Alexander "SonnySlave"
Berkus
Alexander "SonnySlave"
Alexander "SonnySlave"
И для constexpr if