The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Утверждён стандарт C++20, opennews (?), 07-Сен-20, (0) [смотреть все] +1

Сообщения [Сортировка по времени | RSS]


33. "Утверждён стандарт C++20"  +6 +/
Сообщение от Аноним (33), 07-Сен-20, 10:54 
Когда за синтаксисом кода не видно логики программы, это плохо. Всё дальше уходят от ключевой особенности Си - простоты. Хотя, как уже намекнул коллега выше, никто не мешает не пользоваться.
Ответить | Правка | Наверх | Cообщить модератору

35. "Утверждён стандарт C++20"  +2 +/
Сообщение от Аноним (18), 07-Сен-20, 10:56 
Хорошо что в C++ это не так, как в вашем любимом языке. С каждым релизом становится всё проще писать C++ код
Ответить | Правка | Наверх | Cообщить модератору

41. "Утверждён стандарт C++20"  +3 +/
Сообщение от Tita_M (ok), 07-Сен-20, 11:13 
>С каждым релизом становится всё проще писать C++ код

This is what c++ programmers actually believe!

Ответить | Правка | Наверх | Cообщить модератору

46. "Утверждён стандарт C++20"  +/
Сообщение от Аноним (18), 07-Сен-20, 11:27 
То ли дело любой другой язык програмирования:

    public static void NotNull < T > (T argument,  
        [CallerArgumentExpression("argument")] string argumentExpression = null)  
    where T: class {  
        if (argument == null) throw new ArgumentNullException(paramName: argumentExpression);  
    }

Ответить | Правка | Наверх | Cообщить модератору

51. "Утверждён стандарт C++20"  +/
Сообщение от Dzen Python (ok), 07-Сен-20, 11:31 
Уж явно читаемей, чем код на джаве, который позиционируется как копроративный язык для самых маленьких.
Для полного познания дзена рекомендую открыть любой коммунити код у гугла или джет-брейнс.
Ответить | Правка | Наверх | Cообщить модератору

92. "Утверждён стандарт C++20"  +/
Сообщение от h65eyh5 (?), 07-Сен-20, 12:46 
>джаве, который позиционируется как копроративный язык для самых маленьких

С Go спутали.

Ответить | Правка | Наверх | Cообщить модератору

118. "Утверждён стандарт C++20"  +/
Сообщение от Аноним (296), 07-Сен-20, 14:08 
На джаве все вполне читаемо. Многословно, но это другая проблема.
Ответить | Правка | К родителю #51 | Наверх | Cообщить модератору

77. "Утверждён стандарт C++20"  +/
Сообщение от Аноним (18), 07-Сен-20, 12:17 
    public static void NotNull < T > (T argument,  
        [CallerArgumentExpression("argument")] string argumentExpression = null)  
    where T: class {  
        if (argument == null) throw new ArgumentNullException(paramName: argumentExpression);  
    }


Это вообще что за язык ^
Swift?

Ответить | Правка | К родителю #46 | Наверх | Cообщить модератору

78. "Утверждён стандарт C++20"  +/
Сообщение от Аноним (18), 07-Сен-20, 12:18 
C#
Ответить | Правка | Наверх | Cообщить модератору

228. "Утверждён стандарт C++20"  +/
Сообщение от anonimous (?), 08-Сен-20, 01:22 
generic function Min<T>(const A, B: T): T;
begin
  if A < B then Result := A else Result := B;
end;
Ответить | Правка | К родителю #46 | Наверх | Cообщить модератору

155. "Утверждён стандарт C++20"  +2 +/
Сообщение от Аноним (150), 07-Сен-20, 17:21 
> С каждым релизом становится всё проще писать C++ код

…и всё сложнее — понимать его.

Ответить | Правка | К родителю #35 | Наверх | Cообщить модератору

38. "Утверждён стандарт C++20"  +2 +/
Сообщение от Анонимemail (38), 07-Сен-20, 11:04 
>  никто не мешает не пользоваться

мешать-то не мешает, но если в 2020 писать код на С++98 или С++03 (последние стандарты, с которыми я имел дело), смотреть будут странно.
И опять же всю эту мутотень один хрен изучать, потому что какой-нибудь Вася Пупкин будет-таки пихать 17 или даже 20 стандарт. Я вот в одном коде увидел эти лямбды и нихрена не понял, что там написано.
Как же хорошо, что я давно соскочил с этого монстра...

Ответить | Правка | К родителю #33 | Наверх | Cообщить модератору

45. "Утверждён стандарт C++20"  –2 +/
Сообщение от Аноним (18), 07-Сен-20, 11:25 
Зато в ругих языках лямбды предельно просто понять, и их синтаксис загуглить </sarcasm>
Ответить | Правка | Наверх | Cообщить модератору

47. "Утверждён стандарт C++20"  +/
Сообщение от Анонимemail (38), 07-Сен-20, 11:27 
В Erlang, например, все элементарно:
fun (Arg) ->
Ответить | Правка | Наверх | Cообщить модератору

184. "Утверждён стандарт C++20"  +/
Сообщение от коржик (?), 07-Сен-20, 19:45 
мои любимые в .net: (x, y) => x + y

так же в расте: |x, y| x + y

Ответить | Правка | Наверх | Cообщить модератору

233. "Утверждён стандарт C++20"  +1 +/
Сообщение от НяшМяш (ok), 08-Сен-20, 02:06 
>  мои любимые в .net: (x, y) => x + y

Главное всегда уточнять, а то подумают что ты JSник (1 в 1 такой же синтаксис)

Ответить | Правка | Наверх | Cообщить модератору

280. "Утверждён стандарт C++20"  +1 +/
Сообщение от Lex (??), 08-Сен-20, 15:26 
> 1 в 1 такой же синтаксис

Вы не понимаете! Это - другое !!111


Ответить | Правка | Наверх | Cообщить модератору

48. "Утверждён стандарт C++20"  +/
Сообщение от Анонимemail (38), 07-Сен-20, 11:28 
Зараза, отправился случайно.

fun(Arg) ->
some code
end

Все просто и понятно.

Ответить | Правка | К родителю #45 | Наверх | Cообщить модератору

53. "Утверждён стандарт C++20"  +/
Сообщение от Анонимemail (38), 07-Сен-20, 11:33 
и даже в Расте ламбда определяется проще, чем в плюсах.
Ответить | Правка | К родителю #45 | Наверх | Cообщить модератору

65. "Утверждён стандарт C++20"  +2 +/
Сообщение от Аноним (59), 07-Сен-20, 11:54 
Почему "даже"?) Вообще, C++20 всё больше мотивирует изучать Хруст
Ответить | Правка | Наверх | Cообщить модератору

72. "Утверждён стандарт C++20"  +1 +/
Сообщение от Анонимemail (38), 07-Сен-20, 12:03 
Ну так я так и сделал. Посмотрел на стандарт С++17 (а там 2000 страниц) и решил, что ну его нафиг. Вспомнил еще все заморочки ООП с паттернами и прочей хренотой и решил, что лучше уж я выучу Rust, который оказался очень даже неплохим языком. И даже местами похож на Erlang.
Ответить | Правка | Наверх | Cообщить модератору

278. "Утверждён стандарт C++20"  +/
Сообщение от iLex (ok), 08-Сен-20, 14:47 
Это лишь потому, что Rust пока не успел развиться. Но с каждым релизом туда будут досыпать и досыпать синтаксического сахара и прочих наворотов, так что Rust-2030 тоже обзаведётся 2000-страничной краткой спецификацией, без которой там вообще хрен что поймёшь.
Ответить | Правка | Наверх | Cообщить модератору

287. "Утверждён стандарт C++20"  +/
Сообщение от Анонимemail (38), 08-Сен-20, 18:50 
> Rust-2030 тоже обзаведётся 2000-страничной краткой спецификацией, без которой там вообще хрен что поймёшь

да пофиг. На наш век хватит незамусоренного Раста, а там может что другое появится.

Ответить | Правка | Наверх | Cообщить модератору

352. "Утверждён стандарт C++20"  +/
Сообщение от Аноним (351), 10-Сен-20, 06:53 
Ну давай начнем с того, что сам язык (С++20) описан на 475 страницах, а остальное - stl и cstdlib. У С# - 531 а сколько страниц описания у .NET мне страшно представить. У Intel - Software Developer Manuals на 5к страниц и что дальше? Пожалуйста, воздержись от написания бреда и откровенной х...ерунды в интернетах о С/C++, так рождаются странные слухи и бестолковые легенды об этом языке, которые не отражают реальное положение дел.
Ответить | Правка | К родителю #72 | Наверх | Cообщить модератору

354. "Утверждён стандарт C++20"  +/
Сообщение от Анонимemail (38), 10-Сен-20, 07:11 
> воздержись от написания бреда и откровенной х...ерунды в интернетах о С/C++, так рождаются странные слухи и бестолковые легенды об этом языке, которые не отражают реальное положение дел

Давай начнем с того, что про горячо уважаемый мной С я не писал вообще ничего.
А закончим вопросом: кто ты такой, чтобы диктовать мне что писать, а что нет? Я выражаю свое мнение, ты можешь только соглашаться или не соглашаться с ним, на что мне, в общем-то, наплевать.
Что, слухи настолько страшны, что могут уничтожить С++?
Мне нравился С++98 и С++03 (последние стандарты, на которых я писал), в С++11, насколько я знаю, есть интересные штуки типа auto. Но добавление излишней сложности - вот то, что отталкивает от языка, а не какие-то слухи в интернетах.

Ответить | Правка | Наверх | Cообщить модератору

359. "Утверждён стандарт C++20"  +/
Сообщение от anonimous (?), 10-Сен-20, 18:50 
В Oberon-family языках с объемами стандартов все хорошо.

> Разработка семейства языков ALGOL — Pascal — Modula-2 — Oberon — Oberon-2 — Component Pascal отмечена редукцией сложности синтаксиса языка. Полный синтаксис языка Оберон-2 описан всего в 33 предложениях по расширенной форме Бэкуса — Наура

Ответить | Правка | К родителю #72 | Наверх | Cообщить модератору

56. "Утверждён стандарт C++20"  +2 +/
Сообщение от Анонимemail (38), 07-Сен-20, 11:36 
но вот это же вот: [=]() { return n; }
это пипец. У меня первый вопрос был: "А что это за = в квадратных скобках и нафига оно нужно?"
Ответить | Правка | К родителю #45 | Наверх | Cообщить модератору

126. "Утверждён стандарт C++20"  +/
Сообщение от Аноним (122), 07-Сен-20, 14:52 
У лямбды ключего свойство — область видимости переменных внутри. Очевидно что символ равно какое-то отношение к этому имеет.
Ответить | Правка | Наверх | Cообщить модератору

139. "Утверждён стандарт C++20"  +2 +/
Сообщение от Аноним (139), 07-Сен-20, 15:29 
не всем это очевидно. В языках с "более простым и понятным" синтаксисом может не быть возможности управлять областью видимости переменных, а значит те, кто на них пишут уже привыкли не думать об этом
Ответить | Правка | Наверх | Cообщить модератору

151. "Утверждён стандарт C++20"  +1 +/
Сообщение от 128293 (?), 07-Сен-20, 17:11 
Языки с "более простым и понятным" синтаксисом минимум в несколько раз тормознее плюсов
Ответить | Правка | Наверх | Cообщить модератору

200. "Утверждён стандарт C++20"  +/
Сообщение от Аноним (200), 07-Сен-20, 21:04 
ну мы-то про синтаксис лямбд, зачем тему переводишь?
Ответить | Правка | Наверх | Cообщить модератору

295. "Утверждён стандарт C++20"  +/
Сообщение от Аноним (294), 08-Сен-20, 20:51 
>У меня первый вопрос был: "А что это за = в квадратных скобках и нафига оно нужно?"

Захват по значению. [&] - захват по ссылке.

Ответить | Правка | К родителю #56 | Наверх | Cообщить модератору

57. "Утверждён стандарт C++20"  +/
Сообщение от Анонимemail (38), 07-Сен-20, 11:43 
В лиспе тоже просто: (lambda (arg) body).
Других языков не знаю.
Ну и нахрена такие сложности в плюсах?
Ответить | Правка | К родителю #45 | Наверх | Cообщить модератору

61. "Утверждён стандарт C++20"  +1 +/
Сообщение от имя_ (?), 07-Сен-20, 11:49 
ну какие там сложности? я хоть и знаком с языком только по книжке страуструпа, но ничего сложного в лямдбах крестов не вижу
https://en.cppreference.com/w/cpp/language/lambda
Ответить | Правка | Наверх | Cообщить модератору

71. "Утверждён стандарт C++20"  +2 +/
Сообщение от Анонимemail (38), 07-Сен-20, 12:01 
А теперь представьте, что последний раз вы писали на плюсах, когда там еще этой пакости не было. И тут вам попался вот такой код:
return {
    [](take_atom) -> result<taken_atom, bool> {
      return {taken_atom_v, false};
    },
    [=](put_atom) {
      if (self->current_sender() == user)
        self->become(available_chopstick(self));
    },
  };

и поскольку это не ваш основной язык, вам лень гуглить, лезть в талмуд Страуструпа (который тоже надо нагуглить).
Нафига вот эти [] и [=]? Почему бы не сделать кейворд lambda, как в Лиспе, или fun, как в Erlang, или как в Расте: let add_one_v2 = |x: u32| -> u32 { x + 1 };?
Нет, надо такое, чтоб позаковыристей, чтоб враг не догадался.

Ответить | Правка | Наверх | Cообщить модератору

88. "Утверждён стандарт C++20"  +/
Сообщение от Аноним (69), 07-Сен-20, 12:39 
выше если что, ссылка на справкупо лямбдам лямбд с примерами использования, открыл ее - прочитал и уже все понятней стало.
Ответить | Правка | Наверх | Cообщить модератору

90. "Утверждён стандарт C++20"  –1 +/
Сообщение от Анонимemail (38), 07-Сен-20, 12:42 
Все гораздо проще - не надо писать на плюсах.
Ответить | Правка | Наверх | Cообщить модератору

101. "Утверждён стандарт C++20"  –1 +/
Сообщение от Аноним (69), 07-Сен-20, 13:01 
А на чем мне написать кросплатформеную десктопную программу требующую кучу ресурсов ? На js ?
Ответить | Правка | Наверх | Cообщить модератору

109. "Утверждён стандарт C++20"  +1 +/
Сообщение от Анонимemail (38), 07-Сен-20, 13:07 
Я бы писал С или Rust (для него вроде есть GUI-либы), но пишу серверный софт и распределенные системы. На чем писать вам не знаю, на чем хотите, на том и пишите.
Ответить | Правка | Наверх | Cообщить модератору

166. "Утверждён стандарт C++20"  –1 +/
Сообщение от пох. (?), 07-Сен-20, 18:21 
+electron

Ну да, все ж так делают.

А ресурсы... ну юзер богатый, он заплатит.

Ответить | Правка | К родителю #101 | Наверх | Cообщить модератору

185. "Утверждён стандарт C++20"  –1 +/
Сообщение от коржик (?), 07-Сен-20, 19:50 
я бы рассматривал

https://avaloniaui.net/

или Xamarin Native. Хотя этот лучше для мобилок.

Ответить | Правка | К родителю #101 | Наверх | Cообщить модератору

186. "Утверждён стандарт C++20"  +/
Сообщение от Michael Shigorinemail (ok), 07-Сен-20, 19:53 
> я бы рассматривал

А я бы не рассматривал, особенно если это ещё потом портировать.

Ответить | Правка | Наверх | Cообщить модератору

250. "Утверждён стандарт C++20"  +/
Сообщение от коржик (?), 08-Сен-20, 07:52 
Я с авалонией профессионально не занимался, но у меня хобби такое, запускать небольшое графическое приложение в разных языках/фреймворках.

Ну так вот эта авалония взлетела с пол пинка на линуксе винде и маке. Например, gtk, растовские iced, relm, azul, два вебассембли фреймворка попили кровь.

А тут устанавливаешь дотнет машину и все, 10 минут и у тебя в руках классисеский mvvm на xaml + c#.

Xamarin native это да, специфичная вещь, но я не знаю другой обертки над графическими примитивами разных ос, и чтобы это все работало

Ответить | Правка | Наверх | Cообщить модератору

281. "Утверждён стандарт C++20"  +/
Сообщение от Lex (??), 08-Сен-20, 15:37 
> Xamarin native это да, специфичная вещь, но я не знаю другой обертки
> над графическими примитивами разных ос, и чтобы это все работало

React-Native ?) -Но этот для мобил есчто.

К слову, у яблока не так давно с xamarin'ом срач какой-то был..

п.с: чисто для любопытства глянул в общих чертах на Xamarin.
Там реально надо так извращаться на яблоке со сборкой в вижуал студии и выгрузкой приложения в стор чуть ли не через консольку или там генерируется корректный проект, который можно по человечески и собрать и выгрузить посредством "нативного" Xcode ?


Ответить | Правка | Наверх | Cообщить модератору

288. "Утверждён стандарт C++20"  +/
Сообщение от коржик (?), 08-Сен-20, 19:22 
> React-Native ?) -Но этот для мобил есчто.

Посмотрел немного на React-Native. Есть у меня ощущение, что он не очень-то и нативный. То есть, если я правильно понимаю, это скорее аналог xamarin-forms. Сам же ксамарин это обёртки над фрагментами, активити, recyclerview, uiview, uitable, и др. То есть они практически 1 в 1 отражают апи целевой системы.

> Там реально надо так извращаться на яблоке со сборкой в вижуал студии
> и выгрузкой приложения в стор чуть ли не через консольку или
> там генерируется корректный проект, который можно по человечески и собрать и
> выгрузить посредством "нативного" Xcode ?

Вообще, скорее да, чем нет. (по ощущениям, при разработке под яблоко без извращений вообще не бывает) Но не всё так плохо.

В икскоде вы скорее всего будете только ксибки и сториборды верстать. Весь c# код пишется в JB Rider или Visual studio. Вьюшки андроида верстаете в android-studio или прямо там же, в райдере.

В целом, при отладке вы получаете вполне вменяемые стектрейсы. При сборке - вполне понятные ошибки компиляции.

Работать можно в целом

Ответить | Правка | К родителю #281 | Наверх | Cообщить модератору

314. "Утверждён стандарт C++20"  +/
Сообщение от Lex (??), 09-Сен-20, 10:15 
> Посмотрел немного на React-Native. Есть у меня ощущение, что он не очень-то
> и нативный. То есть, если я правильно понимаю, это скорее аналог
> xamarin-forms. Сам же ксамарин это обёртки над фрагментами, активити, recyclerview, uiview,
> uitable, и др. То есть они практически 1 в 1 отражают
> апи целевой системы.

Он и некоторые другие довольно похожи на Xamarin.
Основная разница у RN в том, что основной ЯП - JS, а не C#.
Может и так, но там стремятся предоставить наиболее универсальный АПИ, не зависящий от конкретной ОС с подходом к верстке, напоминающим HTML+CSS( но с нюансами, серьезно улучшающими производительность ).
И, за исключением некоторых сильно-специфичных элементов( типа переключатель ), вид итогового интерфейса и анимации получаются практически одинаковыми что на яблоке, что на андройде.

> Вообще, скорее да, чем нет. (по ощущениям, при разработке под яблоко без
> извращений вообще не бывает) Но не всё так плохо.
> В икскоде вы скорее всего будете только ксибки и сториборды верстать. Весь
> c# код пишется в JB Rider или Visual studio. Вьюшки андроида
> верстаете в android-studio или прямо там же, в райдере.
> В целом, при отладке вы получаете вполне вменяемые стектрейсы. При сборке -
> вполне понятные ошибки компиляции.

Я просто смутно помню, что у некоторых подобных штук проблема была вначале со сборкой, поскольку "нативная" система сборки много чего не поддерживала и, далее, сложности с выгрузкой( особенно с выходом Xcode 11 вроде перестали работать сторонние штуковины для выгрузки приложений в стор - теперь только через Xcode и его "органайзер", что некоторым доставило массу проблем ).
Чем, в свое время, сильно радовал RN, дающий 2 полноценных проекта, которые без проблем собираются "нативными" системами( XCode + что-нибудь для андройда типа Android Studio ).
Посему и интересуюсь, как там нынче.

> Работать можно в целом

Ну это да. Иначе популярности у штук вроде Xamarin'а не было бы

Ответить | Правка | К родителю #288 | Наверх | Cообщить модератору

91. "Утверждён стандарт C++20"  +/
Сообщение от имя_ (?), 07-Сен-20, 12:44 
в общем согласен, с наскоку можно не понять. Но есть пара уточнений:
> талмуд Страуструпа

я имел в виду его последний дайджест по языку - там всего 200 с чем-то страниц, по большей части просто разжевывание старого с советами по применению нового, а не искусство программирования на >1000

>в Расте: let add_one_v2 = |x: u32| -> u32 { x + 1 }

признаюсь, если бы не в контексте лямбд, я бы не сразу понял эту запись (|bla-bla| чем-то похоже на руби)

Ответить | Правка | К родителю #71 | Наверх | Cообщить модератору

95. "Утверждён стандарт C++20"  +/
Сообщение от Анонимemail (38), 07-Сен-20, 12:50 
> если бы не в контексте лямбд, я бы не сразу понял эту запись

именно поэтому я привел более простые примеры из Эрланга и Лиспа. Почему в С++ не сделали чего-то подобного - непонятно.

Ответить | Правка | Наверх | Cообщить модератору

98. "Утверждён стандарт C++20"  +2 +/
Сообщение от Аноним (69), 07-Сен-20, 12:59 
РУЧНОЕ УПРАВЛЕНИЕ ПАМЯТЬЮ ССЫЛКИ И УКАЗАТЕЛИ, ИЗБЕГАНИЕ КОПИРОВАНИЯ
Вы сравниваете два абсолютно разных по своей структуре ЯП.
Ответить | Правка | Наверх | Cообщить модератору

106. "Утверждён стандарт C++20"  +/
Сообщение от Анонимemail (38), 07-Сен-20, 13:04 
Я сравниваю синтаксис. Или что, все вышеперечисленное не дает в плюсах сделать нормальный синтаксис для лямбд?
Ответить | Правка | Наверх | Cообщить модератору

127. "Утверждён стандарт C++20"  +5 +/
Сообщение от Аноним (122), 07-Сен-20, 14:56 
Не даёт, вы должны явно указать компилятору какие переменные будут доступны в замыкании и в каком виде.
Ответить | Правка | Наверх | Cообщить модератору

368. "Утверждён стандарт C++20"  +/
Сообщение от Alex (??), 11-Сен-20, 12:56 
А как взять что-то в замыкание в этом вашем расте?
Ответить | Правка | К родителю #91 | Наверх | Cообщить модератору

93. "Утверждён стандарт C++20"  +/
Сообщение от Аноним (139), 07-Сен-20, 12:46 
> А теперь представьте, что последний раз вы писали на плюсах, когда там еще этой пакости не было.

а если вы ни на чем, не писали, то ни на чем писать и не начнете, ведь вам лень гуглить.

Вот приходится иногда ковыряться и в джаве, и в жс, и в питоне, и в еще нескольких языках и ни один из них не мой основной. Чем C++ в этом варианте хуже?

Ответить | Правка | К родителю #71 | Наверх | Cообщить модератору

94. "Утверждён стандарт C++20"  +/
Сообщение от Анонимemail (38), 07-Сен-20, 12:49 
Ну а мне 99% времени приходится ковыряться в Эрланге, который по совместительству мой основной.
Ответить | Правка | Наверх | Cообщить модератору

103. "Утверждён стандарт C++20"  +3 +/
Сообщение от Аноним (139), 07-Сен-20, 13:01 
а я вот пока с ним не сталкивался

> Нафига вот эти [] и [=]?

в эрланге объекты/переменные для лямбд захватываются по ссылке или копируются?

Ответить | Правка | Наверх | Cообщить модератору

265. "Утверждён стандарт C++20"  –1 +/
Сообщение от Аноним (265), 08-Сен-20, 11:48 
Да.
Ответить | Правка | Наверх | Cообщить модератору

300. "Утверждён стандарт C++20"  +2 +/
Сообщение от Ordu (ok), 08-Сен-20, 21:45 
> В лиспе тоже просто: (lambda (arg) body).
> Ну и нахрена такие сложности в плюсах?

Захват переменных замыканием. В лиспе если у тебя есть объект, то лиспу пофигу, сколько разного кода на него ссылается. И сборщику мусора пофигу. В C/C++ же не пофигу, легко можно придти к ситуации неопределённости, когда нет возможности вне времени выполнения сказать, когда надо освобождать память. (Во-время выполнения тоже нельзя, но это лишь в дефолтном инструментарии: valgrind, например может, или сборщик мусора можно прикрутить, и он тоже найдёт память, которую следовало бы освободить).

А чтобы дать программисту возможность неопределённости избегать, запилен заморочный синтаксис лямбд, который позволяет программисту рулить тем, как переменные попадают в лямбду: копируются значения? закидываются ссылки? Заметь, что если закидываются ссылки, то программист сам должен следить за тем, чтобы не удалить объекты, на которые они ссылаются, до того, как будет удалена лямбда, иначе код лямбды обратится к освобождённой памяти. Если же копируются значения, то куда они копируются? На стек не скопируешь, потому как лямбду можно вернуть из функции и стековый фрейм может прекратить существовать. Значит копируем в кучу, а значит выделение памяти, значит с лямбдой увязан кусок памяти, который надо освободить, освобождая лямбду.

Ответить | Правка | К родителю #57 | Наверх | Cообщить модератору

321. "Утверждён стандарт C++20"  +/
Сообщение от Анонимemail (38), 09-Сен-20, 12:01 
спасибо, Rust и обычная сишка попроще будут.
Ответить | Правка | Наверх | Cообщить модератору

68. "Утверждён стандарт C++20"  +/
Сообщение от iPony129412 (?), 07-Сен-20, 11:56 
> Я вот в одном коде увидел эти лямбды и нихрена не понял, что там написано.

Да как-то связи особой нет...
На любом стандарте можно такое понаписать.
Теми же макросами только так можно лютую штуку сделать, что от неё радугой всё блевать будет.

Ответить | Правка | К родителю #38 | Наверх | Cообщить модератору

74. "Утверждён стандарт C++20"  +/
Сообщение от Анонимemail (38), 07-Сен-20, 12:05 
Проблема в том, что тут это стандарт и общепринятая практика, а не говнокод отдельно взятого индивида, которого можно просто напинать в курилке.
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру