spamsink: (Default)
[personal profile] spamsink
Я, оказывается, всё пропустил. В пятницу был праздник у ребят, ликовала пионерия: в тот день в гости к ним пришел стандарт C++11.

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

Date: 2011-08-17 02:29 am (UTC)
From: [identity profile] yatur.livejournal.com
О как. Таки родили. А новый вариант латинского языка, часом, не вышел?

Date: 2011-08-17 02:47 am (UTC)
From: [identity profile] sasha-gil.livejournal.com
Ну, у вас же внутренние инструменты пишут какие-нибудь (или там заповедь - использовать абсолютно тот же компилятор)? Мне уже попадался на глаза продакшн как бы код с C++ными лямбдами, выглядит забавно - но и видно, зачем их вставили: перепихивание некоего стандартного plumbing-а из области рукописного (многословного, медленнее воспринимаемового и более error-prone) кода в автоматически сгенерированный компилятором.

Date: 2011-08-17 07:59 am (UTC)
From: [identity profile] maksa.livejournal.com
Можно на какой-нибудь контест заявиться, там, глядишь, и придётся лямбдануть.

Date: 2011-08-17 08:23 am (UTC)
From: [identity profile] archaicos.livejournal.com
На днях так случилось, что поюзал "блямбды" в VC++. На редкость странный синтаксис на мой вкус. Ну, т.е. оригинальное извращение с определением переменных, ф-ций и типов в C(++) извращением и остается, но теперь к нему добавляется еще одно - эти с(т)ранные [] и -> в "лябадах". Я не понял необходимости определять ф-ции 2-м синтаксисом. Только для отличия от обычных? Так это можно было сделать и более элегантно. Йогурт какой-то вышел. Хех.

Date: 2011-08-17 08:23 am (UTC)
From: [identity profile] archaicos.livejournal.com
["лямбадах"]

Date: 2011-08-17 01:18 pm (UTC)
From: [identity profile] anatoly borodin (from livejournal.com)
> Я не понял необходимости определять ф-ции 2-м синтаксисом.

Это чтоб функции по месту определять, а не 30 строчками выше.

Date: 2011-08-17 04:21 pm (UTC)
From: [identity profile] archaicos.livejournal.com
Я не про назначение фичи, а про синтаксис, который можно было оставить почти таким же, как у обычных ф-ций.

Date: 2011-08-17 05:00 pm (UTC)
From: [identity profile] anatoly borodin (from livejournal.com)
Это как?

void fun1()
{
      ...
      int fun2(int x) {return x * x;}
      fun3(fun2, ys);
      ...
}


Чёрт его знает, почему так не сделали.

PS Ещё один плюс лямбды — не надо имя придумывать.

Date: 2011-08-17 05:39 pm (UTC)
From: [identity profile] archaicos.livejournal.com
Нет, это примерно так, как объявление параметра-указателя ф-ции в прототипе только с телом внутри {}:
    fun3(int (int x) {return x * x;}, ys);

и так:
    fun3(int (*)(int x) {return x * x;}, ys);

А ссылку(-и) на контекст можно было бы вначале списка параметров передать (перед x, т.е.).
А так создается впечатление, что зааутсорсили фичу куда-то, где не разобрались, и приляпали сбоку еще какую-то хрень делающую на 95% то же, что уже есть в существующем дизайне и коде, но по-другому, как носки разного цвета.

Date: 2011-08-19 11:46 am (UTC)
From: [identity profile] archaicos.livejournal.com
Ой, это какая-то ужасть. Сейчас еще подумал на предмет auto и безопасности (переполнений всяких), и сдается мне, что появился дополнительный способ (или форма) для выстреливания в ногу. Хотя, с другой стороны, подобное можно и с шаблонами учинить, и с макросами. Конечно, убивает не само ружьё, а мужик из него...

Date: 2011-08-19 03:02 am (UTC)
From: [identity profile] sab123.livejournal.com
За лямбда-функции нужно отрывать яйцы!

Date: 2011-08-20 12:02 am (UTC)
From: [identity profile] sab123.livejournal.com
Хрень, почти не поддающаяся отладке.

Date: 2011-08-19 08:51 am (UTC)
From: [identity profile] anhinga-anhinga.livejournal.com
а скажи, как у вас это устроено, что используется gcc 3.4.6? Есть специальный компьютер, где нет более поздней версии, и билд делается на нём? Или создается какая-то виртуальная штука, в которой живёт эта версия, и билд делается внутри виртуальной штуки?

Date: 2011-08-19 09:10 am (UTC)
From: [identity profile] anhinga-anhinga.livejournal.com
я слышал всякие легенды, что разные версии gcc не очень хорошо сосуществуют на одной машине; насколько легко/сложно было это преодолеть? (что делают при инсталляции, чтобы они полностью оказывались в разных непересекающихся местах?)

Profile

spamsink: (Default)
spamsink

February 2026

S M T W T F S
12345 67
8 91011 121314
15161718 192021
22 2324 25262728

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 5th, 2026 12:27 pm
Powered by Dreamwidth Studios