Про умные указатели а лучше сборщик мусора...
От: Shmj Ниоткуда  
Дата: 07.01.23 07:18
Оценка:
Вот в std добавили несколько типов умных указателей.

Ок, а почему бы не добавить шибко вумный универсальный, чтобы с его использованием все работало как в современных ЯП типа Java/C#/Swift/Dart? Ну т.е. ту самую сборку мусора.

А почему нет? Вот не хочу думать о выделении памяти и мне не нужна такая уж экономия ресурсов — не беда если сборка мусора произойдет спустя 30 сек, к примеру, а не сразу.

Вы скажете что лучше используй современные языке? Но что если мне нужна фишка, которых в этих языках нет — а именно полноценная кроссплатформенность, возможность использовать кодовую базу (а не дергать через обертки) и независимость от установки фреймворков?
Re: Про умные указатели а лучше сборщик мусора...
От: vsb Казахстан  
Дата: 07.01.23 07:50
Оценка: 3 (1)
Boehm GC?
Re: Про умные указатели а лучше сборщик мусора...
От: PM  
Дата: 07.01.23 08:11
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Вот в std добавили несколько типов умных указателей.


S>Ок, а почему бы не добавить шибко вумный универсальный, чтобы с его использованием все работало как в современных ЯП типа Java/C#/Swift/Dart? Ну т.е. ту самую сборку мусора.


Начиная с C++11 кое-что было для сборки мусора (см declare_reachable, undeclare_reachable) но оно оказалось никому не нужно в стандартной бибилотеке и тем более в ядре языка.

Так что в C++23 предложено это ненужное удалить: https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2186r2.html#rationale
Re: Про умные указатели а лучше сборщик мусора...
От: rg45 СССР  
Дата: 07.01.23 09:50
Оценка: 6 (1) +11 -1 :)
Здравствуйте, Shmj, Вы писали:

S>Ок, а почему бы не добавить шибко вумный универсальный, чтобы с его использованием все работало как в современных ЯП типа Java/C#/Swift/Dart? Ну т.е. ту самую сборку мусора.

S>А почему нет? Вот не хочу думать о выделении памяти и мне не нужна такая уж экономия ресурсов — не беда если сборка мусора произойдет спустя 30 сек, к примеру, а не сразу.

Ты другие форумы зафлудил уже чуть ли не полностью, теперь и до плюсов добрался. Ты даже не разобрался еще в базовых понятиях языка, но уже генерируешь какие-то идеи космического масштаба и космической же глупости. Никто не станет прогибать язык под то, что тебе лично нужно или ненужно.
--
Не можешь достичь желаемого — пожелай достигнутого.
Отредактировано 07.01.2023 11:15 rg45 . Предыдущая версия . Еще …
Отредактировано 07.01.2023 10:56 rg45 . Предыдущая версия .
Отредактировано 07.01.2023 9:55 rg45 . Предыдущая версия .
Отредактировано 07.01.2023 9:54 rg45 . Предыдущая версия .
Отредактировано 07.01.2023 9:53 rg45 . Предыдущая версия .
Отредактировано 07.01.2023 9:53 rg45 . Предыдущая версия .
Re[2]: Про умные указатели а лучше сборщик мусора...
От: Shmj Ниоткуда  
Дата: 07.01.23 12:30
Оценка:
Здравствуйте, rg45, Вы писали:

R>Ты другие форумы зафлудил уже чуть ли не полностью, теперь и до плюсов добрался. Ты даже не разобрался еще в базовых понятиях языка, но уже генерируешь какие-то идеи космического масштаба и космической же глупости. Никто не станет прогибать язык под то, что тебе лично нужно или ненужно.


Ну а чем конкретно эта идея глупа? Вот, люди пишут что уже есть: Boehm GC. Выше же ответ — уже были попытки внедрения.
Re[3]: Про умные указатели а лучше сборщик мусора...
От: rg45 СССР  
Дата: 07.01.23 12:43
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Ну а чем конкретно эта идея глупа? Вот, люди пишут что уже есть: Boehm GC. Выше же ответ — уже были попытки внедрения.


Глупа эта идея уже хотя бы тем, что сгенерирована человеком, который не потрудился разобраться даже в основах. Ты занимаешься маниловщиной, кто бы там ни предпринивал какие бы то ни было попытки.
--
Не можешь достичь желаемого — пожелай достигнутого.
Re[4]: Про умные указатели а лучше сборщик мусора...
От: Shmj Ниоткуда  
Дата: 07.01.23 12:57
Оценка:
Здравствуйте, rg45, Вы писали:

R>Глупа эта идея уже хотя бы тем, что сгенерирована человеком, который не потрудился разобраться даже в основах.


С чего ты решил, что не разобрался в основах?
Re[5]: Про умные указатели а лучше сборщик мусора...
От: rg45 СССР  
Дата: 07.01.23 12:59
Оценка:
Здравствуйте, Shmj, Вы писали:

S>С чего ты решил, что не разобрался в основах?


http://rsdn.org/forum/cpp/8442729.1
Автор: Shmj
Дата: 05.01.23


Объявление, определение, связывание, линковка... Не разобравшись в азах, ты начинаешь дискуссии о фундаментальных переделках языка.
--
Не можешь достичь желаемого — пожелай достигнутого.
Отредактировано 07.01.2023 13:03 rg45 . Предыдущая версия . Еще …
Отредактировано 07.01.2023 13:02 rg45 . Предыдущая версия .
Отредактировано 07.01.2023 13:01 rg45 . Предыдущая версия .
Re[6]: Про умные указатели а лучше сборщик мусора...
От: Shmj Ниоткуда  
Дата: 07.01.23 14:07
Оценка:
Здравствуйте, rg45, Вы писали:

S>>С чего ты решил, что не разобрался в основах?


Потихоньку разбираюсь — у меня просто другого выхода нет — иначе останусь без средств к существованию в чужой стране

R>http://rsdn.org/forum/cpp/8442729.1
Автор: Shmj
Дата: 05.01.23


R>Объявление,


Даем компилятору инфу о типах, но не указываем значение (для переменной) или реализацию (для функций, классов). По сути имя и тип данных, связанный с этим именем.

Для глобальных переменных нужно добавить слово extern, если хотим объявить без определения, иначе автоматом произойдет выделение памяти т.е. определение.

R>определение,


— конкретное заполнение — для переменных это установка значения, для функций — добавление тела, для классов — объявление всех членов (без определения видимо).

R>связывание,


— когда идентификатору сопоставляем адрес.

R>линковка...


Когда из отдельно скомпиленных файлов создается единый исполняемый файл/библиотека.

R>Не разобравшись в азах, ты начинаешь дискуссии о фундаментальных переделках языка.


Теперь будем говорить по теме?
Re: Про умные указатели а лучше сборщик мусора...
От: DiPaolo Россия  
Дата: 07.01.23 14:46
Оценка:
Баян 25летней давности.

Про такое уже подумали до тебя, и заложили это как требование в новый язык на базе C++.

The language, and implementations thereof, should provide support for software engineering principles such as strong type checking, array bounds checking, detection of attempts to use uninitialized variables, and automatic garbage collection. Software robustness, durability, and programmer productivity are important.

(https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/introduction)
Патриот здравого смысла
Re[7]: Про умные указатели а лучше сборщик мусора...
От: rg45 СССР  
Дата: 07.01.23 14:48
Оценка: +1 -1
Здравствуйте, Shmj, Вы писали:

S>Потихоньку разбираюсь — у меня просто другого выхода нет — иначе останусь без средств к существованию в чужой стране


Вот и молодец, разбирайся потихоньку.
--
Не можешь достичь желаемого — пожелай достигнутого.
Re[2]: Про умные указатели а лучше сборщик мусора...
От: Shmj Ниоткуда  
Дата: 07.01.23 14:52
Оценка:
Здравствуйте, DiPaolo, Вы писали:

DP>Про такое уже подумали до тебя, и заложили это как требование в новый язык на базе C++.


А почему нельзя добавить это в старый язык всего то?
Re[3]: Про умные указатели а лучше сборщик мусора...
От: DiPaolo Россия  
Дата: 07.01.23 15:07
Оценка: 15 (1) +4
S>А почему нельзя добавить это в старый язык всего то?

Шымж, ты когда-нибудь новые фичи добавлял в очень старый продукт, многими версиями которого пользуются очень много клиентов? А еще лучше — менял в тех же условиях какую-то базовую архитектурную часть?

Я вот не знаю стандарт плюсов, не знаю деталей его имплементацию, но могу представить, насколько это сложно, геморно, долго, больно для юзеров, еще и с просадками в производительности и увеличении требований к ресурсам. А ведь такое потом надо будет реализовать для всяких там железок и для кучи разных платформ и даже разных архитектур процессоров. Ну и главное — зачем? Зачем туда тащить фичи, которые противоречат самой идеологии языка?

Ниже выдержки из P2137R0 Goals and priorities for C++ (https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p2137r0.html).

Performance as the top priority is the defining aspect of C++ for our users. No other programming language provides the performance-critical facilities of C++. This should be the unique value proposition of the C++ programming language.


Provide the programmer control over every aspect of performance. When faced with some performance problem, the programmer should always have tools within C++ to address it. This does not mean that the programmer is necessarily concerned with ultimate performance at every moment, but in the most constrained scenarios they must be able to “open up the hood” without switching to another language.

Code should perform predictably. The reader (and writer) of code should be able to easily understand its expected performance, given sufficient background knowledge of the environment in which it will run. This need not be precise, but instead can use heuristics and guidelines to avoid surprise. The key priority is that performance, whether good or bad, is unsurprising to users of the C++ language. Even pleasant surprises, when too frequent, can become a problem due to establishing brittle baseline performance that cannot be reliably sustained.


Support maintaining and evolving software written in C++ for decades. The life expectancy of some software will be long and the software will not be static or unchanging in that time. Mistakes will be made and need to be corrected. New functionality will be introduced and old functionality retired and removed. The design of C++ must support and ease every step of this process. This ranges from emphasizing testing and continuous integration to tooling and the ability to make multi-step changes. It also includes constraints on the design of the language itself: we should avoid, or at least minimize, language features that encourage unchangeable constructs. For example, any feature with a contract that cannot be strengthened or weakened without breaking the expected usage patterns is inherently hostile to refactoring. Similarly, features or conventions that require simultaneously updating all users of an API when extending it are inherently hostile towards long-term maintenance of software.

Support maintaining and evolving the language itself for decades. Historically, we have not gotten the design of most language features correct on our first or second try. And we shouldn’t expect that to change going forward either. As a consequence, there must be a built-in plan and ability to move C++ forward at a reasonable pace and with a reasonable cost. Simultaneously, an evolving language must not leave software behind to languish, but bring software forward. This requirement should not imply compatibility, but instead some (likely tool-assisted) migratability.

Be mindful of legacy. We support several 100s of millions of lines of C++ code. Globally, there may be as many as 50 billion lines of C++ code. Any evolution of C++ that fails to account for the human investment (training) and legacy code (representing significant capital) is doomed from the start. Note that our _priority_ is restricted to legacy _source code_. Full support, whether across the full language feature set or with full performance, for legacy code beyond that (such as precompiled binaries we call out below) is not a prioritized goal. While that still leaves many options open (such as dedicated and potentially slower features), it does limit the degree to which legacy use cases beyond source code should shape the language design.

Патриот здравого смысла
Re[8]: Про умные указатели а лучше сборщик мусора...
От: Shmj Ниоткуда  
Дата: 07.01.23 16:04
Оценка:
Здравствуйте, rg45, Вы писали:

S>>Потихоньку разбираюсь — у меня просто другого выхода нет — иначе останусь без средств к существованию в чужой стране

R>Вот и молодец, разбирайся потихоньку.

Ну почему вам интересно только обсуждать личности и переходить на личности? Давай по делу — вопрос вполне конкретный.
Re[9]: Про умные указатели а лучше сборщик мусора...
От: rg45 СССР  
Дата: 07.01.23 16:51
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Ну почему вам интересно только обсуждать личности и переходить на личности? Давай по делу — вопрос вполне конкретный.


В том-то и дело, что совсем не по делу. Что с тобой можно обсужадать, когда ты теплое с мягким путаешь? Твое предложение: "давай флудить вместе". У меня встречное предложение: "прекращай флудить". Хотя бы в профильных форумах. Загадил уже все.
--
Не можешь достичь желаемого — пожелай достигнутого.
Отредактировано 07.01.2023 17:17 rg45 . Предыдущая версия . Еще …
Отредактировано 07.01.2023 17:16 rg45 . Предыдущая версия .
Отредактировано 07.01.2023 17:11 rg45 . Предыдущая версия .
Отредактировано 07.01.2023 16:58 rg45 . Предыдущая версия .
Отредактировано 07.01.2023 16:56 rg45 . Предыдущая версия .
Отредактировано 07.01.2023 16:56 rg45 . Предыдущая версия .
Отредактировано 07.01.2023 16:54 rg45 . Предыдущая версия .
Отредактировано 07.01.2023 16:53 rg45 . Предыдущая версия .
Re: Про умные указатели а лучше сборщик мусора...
От: Muxa  
Дата: 07.01.23 17:28
Оценка:
S>Вот в std добавили несколько типов умных указателей.

S>Ок, а почему бы не добавить шибко вумный универсальный, чтобы с его использованием все работало как в современных ЯП типа Java/C#/Swift/Dart? Ну т.е. ту самую сборку мусора.


По-моему gc это не фишка языка, а фишка компиляции и времени исполнения. Или в самом языке чего-то не хватает для его реализации?
А так — беги кланг да делай на его основе gc для плюсов. Судя по обилию таких проектов, вещь «нужная» всем.
Re[7]: Про умные указатели а лучше сборщик мусора...
От: rudzuk  
Дата: 07.01.23 18:34
Оценка:
Здравствуйте, Shmj, Вы писали:

S> Потихоньку разбираюсь — у меня просто другого выхода нет — иначе останусь без средств к существованию в чужой стране


А в чужой стране, кроме плюсов вакансий нет? На современных ЯП типа Java/C#/Swift/Dart?
avalon/3.0.1
Re[8]: Про умные указатели а лучше сборщик мусора...
От: Shmj Ниоткуда  
Дата: 07.01.23 19:50
Оценка:
Здравствуйте, rudzuk, Вы писали:

R>А в чужой стране, кроме плюсов вакансий нет? На современных ЯП типа Java/C#/Swift/Dart?


Не человек выбирает проект а проект выбирает человека
Re: Про умные указатели а лучше сборщик мусора...
От: koenjihyakkei Россия  
Дата: 07.01.23 21:20
Оценка: 5 (1) :))
Здравствуйте, Shmj, Вы писали:

Раньше спрашивали: ты гуглил прежде чем задать вопрос. Теперь гугл умер, и я спрашиваю ты поговорил с ChatGPT прежде чем задать вопрос на форуме?

Re[2]: Про умные указатели а лучше сборщик мусора...
От: rg45 СССР  
Дата: 07.01.23 21:33
Оценка: +1
Здравствуйте, koenjihyakkei, Вы писали:

K>Раньше спрашивали: ты гуглил прежде чем задать вопрос. Теперь гугл умер, и я спрашиваю ты поговорил с ChatGPT прежде чем задать вопрос на форуме?


А он задает вопросы не для того, чтобы получить ответы. Для него важен сам процесс общения, остальное — несущественная побочка.
--
Не можешь достичь желаемого — пожелай достигнутого.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.