Здравствуйте, Артём, Вы писали:
Аё>>>Т.е. проблема циклической ссылки не решена, это фундамендальный недостаток метода управления временем жизни обьекта наивным ref count.
SVZ>>При нормальной организации данных циклические ссылки не появляются в принципе.
Аё>Обьясни как краевед, нафига данным смарт пойнтеры? Чтоб тормозило?
Поэтому в данных мы их и не используем.
Аё>Трабла с интерфейсами, с колбеками и т.п.
Если известен порядок создания и удаления объектов, то колбеки создаются и удаляются в определенное время определенным "объектом-манагером".
Но это требует определенной дисциплины в коде.
_____________________
С уважением,
Stanislav V. Zudin
Здравствуйте, Артём, Вы писали:
Аё>Да ладно. Достижения C++ с 2009г: Аё>1) auto (синтаксический сахар)
Попробуй без этого сахара решить такую задачку:
template<class A, class B>
??? add(A a, B b) { return a + b; }
Какой возвращаемый тип должен быть у add?
Или в какой тип ты собираешься сохранять лямбды без auto?
auto для него сахар, ыксперд, lavrov.jpg
Аё>2) новые грабельки передачи владения
На самом деле это не "новые грабельки", а исправление одного из фатальных недостатков старого C++.
Ну и до кучи:
enum class, range for, lambdas, variadic templates, using вместо typedef, атрибуты (nodiscard, noreturn, no_unuque_address и пр.), constexpr/consteval, fold expressions, if constexpr, inline variables, modules, concepts, stackless coroutines.
Здравствуйте, CreatorCray, Вы писали:
CC>Здравствуйте, so5team, Вы писали:
S>>Это у него новая тактика: сперва ляпнуть ерунду, а потом молча ставить минусы CC>Гм, новая?
Раньше он на мои вопросы хотя бы пытался отвечать, сейчас полный игнор. Может что-то осознал.
Здравствуйте, so5team, Вы писали:
S>Раньше он на мои вопросы хотя бы пытался отвечать, сейчас полный игнор.
Аналогичный вопрос от меня он тоже проигнорировал
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, so5team, Вы писали:
S>range for
+1, я с облегчением выкинул всякие foreach макры
S> lambdas
+1, старый подход через operator() был зело неудобен
S> variadic templates
Я тут же переписал на них свой printf-like typesafe formatter, который раньше был написан на довольно таки экзотическом operator,
Ну и в принципе VT очень удобны для всякого разного.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, Stanislav V. Zudin, Вы писали:
SVZ>Поэтому в данных мы их и не используем.
SVZ> колбеки создаются и удаляются в определенное время определенным "объектом-манагером".
В данных смарт пойнтеры не используете, и в колбеках тоже. Т.е. что тут еще сказать- C++ ниасилил проблему циклических ссылок, как ниасилил и другие проблемы. Как то неопределенность при бросании исключений, при ромбическом наследовании. C++ — это нагромождение концепций и костылей, смотанных скотчем. И поэтому, никто и нигде не хочет с ним связываться, кроме исторических обросших каловыми отложениями, проектов из 1990-х.
Здравствуйте, so5team, Вы писали:
S>Попробуй без этого сахара решить такую задачку: S>
S>template<class A, class B>
S>??? add(A a, B b) { return a + b; }
S>
S>Какой возвращаемый тип должен быть у add?
S>Или в какой тип ты собираешься сохранять лямбды без auto?
S>auto для него сахар, ыксперд, lavrov.jpg
Аё>>2) новые грабельки передачи владения
S>На самом деле это не "новые грабельки", а исправление одного из фатальных недостатков старого C++.
S>Ну и до кучи:
S>enum class, range for, lambdas, variadic templates, using вместо typedef, атрибуты (nodiscard, noreturn, no_unuque_address и пр.), constexpr/consteval, fold expressions, if constexpr, inline variables, modules, concepts, stackless coroutines.
Т.е. информационный шум, который нужно держать в голове вместо решения практических задач. C++ был неидеален в 90- начале 2000х, но предлагал что-то что не было у других языков. С тех пор он ничего полезного предложить не может, и направление развития- Кащенко. Что, наверное, неудивительно, если учеть, что адекваты ушли в другие языки и кто там в плюсах остался.
Здравствуйте, Артём, Вы писали:
S>>Ну и до кучи:
S>>enum class, range for, lambdas, variadic templates, using вместо typedef, атрибуты (nodiscard, noreturn, no_unuque_address и пр.), constexpr/consteval, fold expressions, if constexpr, inline variables, modules, concepts, stackless coroutines.
Аё>Т.е. информационный шум, который нужно держать в голове вместо решения практических задач.
Почти по каждому из этих пунктов (за исключением фич из C++20, которые еще не было возможности испробовать на практике) я могу показать как именно они облегчают написание кода, снижают количество ошибок и повышают надежность. Для форумного балабола, вроде тебя, который нормального кода на C++, вероятно и в глаза никогда не видел (не говоря уже о том, чтобы нормальный код написать самому), это может и информационный шум. А для практикующих программистов -- это приведение в порядок того, что было либо унаследовано из чистого Си, либо было сделано не очень удачно в первых версиях C++ еще в 1980-х.
А вот ты, не имея понятия о предмете разговора, можешь лишь беспредметно исходить на известную субстанцию.
Здравствуйте, Артём, Вы писали:
Аё>В данных смарт пойнтеры не используете, и в колбеках тоже. Т.е. что тут еще сказать- C++ ниасилил проблему циклических ссылок, как ниасилил и другие проблемы.
Я тебе больше скажу, мы в структурах данных указатели вообще не используем. Только индексы! Никаких лишних аллокаций.
И не потому что с++ чего-то "ниасилил", а потому что структуры данных определяются алгоритмами.
Поэтому у нас ворочаются 3Д схемы с 1200+ млн треугольников, которые у других даже в 2Д еле ползают. Асилит такое ява? Сомневаюсь. Одно выделение памяти займет вечность.
_____________________
С уважением,
Stanislav V. Zudin
Здравствуйте, Артём, Вы писали:
Аё>Т.е. информационный шум, который нужно держать в голове вместо решения практических задач. C++ был неидеален в 90- начале 2000х, но предлагал что-то что не было у других языков. С тех пор он ничего полезного предложить не может, и направление развития- Кащенко. Что, наверное, неудивительно, если учеть, что адекваты ушли в другие языки и кто там в плюсах остался.
Артёмка, ты только что потратил дофига байтиков но мысли в них не прослеживается.
"Т.е. информационный шум" (С)
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, Stanislav V. Zudin, Вы писали:
SVZ>Я тебе больше скажу, мы в структурах данных указатели вообще не используем. Только индексы! Никаких лишних аллокаций.
Формально указатель это просто индекс в массиве всей памяти
SVZ>И не потому что с++ чего-то "ниасилил", а потому что структуры данных определяются алгоритмами.
+1
SVZ>Асилит такое ява? Сомневаюсь. Одно выделение памяти займет вечность.
Ну можно из явы убрать всё, кроме сабсета общего с "С с классами"
Вот только нахрена тогда вообще весь этот цирк если можно сразу взять С++ и там юзать точно такой же сабсет?
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, so5team, Вы писали:
S>Да вы, походу, вообще "решением прикладных задач" (с) не занимаетесь, а только треугольники какие-то ворочаете.
Да если так посмотреть то мы тут вообще все только байтики перекладываем
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, CreatorCray, Вы писали:
S>>Да вы, походу, вообще "решением прикладных задач" (с) не занимаетесь, а только треугольники какие-то ворочаете. CC>Да если так посмотреть то мы тут вообще все только байтики перекладываем
Некоторые еще и координируют это самое перекладывание и разворачивание
Но по сути таки да, именно что прикладная разработка на C++, -- это сейчас редкое явление, имхо.
Здравствуйте, so5team, Вы писали:
S>Некоторые еще и координируют это самое перекладывание и разворачивание
Да они тоже байтики перекладывают, только в емыле и всяких слаковебексах
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, CreatorCray, Вы писали:
SVZ>>Я тебе больше скажу, мы в структурах данных указатели вообще не используем. Только индексы! Никаких лишних аллокаций. CC>Формально указатель это просто индекс в массиве всей памяти
Оно так, но есть нюанс. Значение указателя произвольно — что манагер памяти выдал, тем и пользуемся и не несёт никакой информации (окромя nullptr).
А значение индекса можно использовать в разных целях — порядок обработки, признак "обработано или ещё нет", принадлежность какой-то группе сущностей и проч.
SVZ>>Асилит такое ява? Сомневаюсь. Одно выделение памяти займет вечность. CC>Ну можно из явы убрать всё, кроме сабсета общего с "С с классами" CC>Вот только нахрена тогда вообще весь этот цирк если можно сразу взять С++ и там юзать точно такой же сабсет?
Согласен.
_____________________
С уважением,
Stanislav V. Zudin
Здравствуйте, so5team, Вы писали:
SVZ>>Поэтому у нас ворочаются 3Д схемы с 1200+ млн треугольников
S>Да вы, походу, вообще "решением прикладных задач" (с) не занимаетесь, а только треугольники какие-то ворочаете.
Да у нас одна "прикладная задача" — наглядно показать конструктору какой он баран в каком месте и насколько сильно он накосячил
_____________________
С уважением,
Stanislav V. Zudin
Здравствуйте, Stanislav V. Zudin, Вы писали:
SVZ>Я тебе больше скажу, мы в структурах данных указатели вообще не используем. Только индексы! Никаких лишних аллокаций.
Связные списки тоже на смещениях в памяти?
SVZ>И не потому что с++ чего-то "ниасилил", а потому что структуры данных определяются алгоритмами.
Согласен.
SVZ>Поэтому у нас ворочаются 3Д схемы с 1200+ млн треугольников, которые у других даже в 2Д еле ползают. Асилит такое ява? Сомневаюсь. Одно выделение памяти займет вечность.
Ты себе противоречишь. С одной стороны "Только индексы! Никаких лишних аллокаций.", с другой 1200+ млн треугольников выделений. Сделать также и в жаве, без лишних выделений, mmap на большой кусок вызов такой же, как из C++. Только код на Java безопесней и без вывихов template укушенных Александреской.