Как стать автором
Обновить
5
0
Андрей @AndrewAZ

Пользователь

Отправить сообщение
Первая посылка: компилятор вам заявляет «дружище, что бы у тебя в качестве result_type не было определено, но sizeof я для этого сделать никак не могу».

Вторая посылка: обычно компиляторы не испытывают проблем с sizeof(int).

Вывод: result_type не является типом int.

«If the expression parameter is a call to a function...» — означает «Если вы в скобочках написали что-то, что похоже на вызов ф-ции...».
А вызов ф-ции/функтора обычно выглядит как применение оператора скобочки для объекта ф-ции/функтора (т.е. func()), а не чистое написание типа ф-ции/функтора (LambdaFunc).
Все просто: x — это ленивый генератор ленивых функторов :).
Когда от него просят x[i], и в своем контейнере функторов для i у него ничего нет — он делает ленивый функтор и сохраняет его в контейнер. Функторы знают свой индекс и знают X, у которого могут запрашивать доступ к соседям.

И вся эта чехарда, чтобы написать что-то вроде:
for (unsigned i = 0; ( x[i + 1]() - x[i]() ) >= eps; ++i);
Не собирается, потому что decltype(LambdaFunc) — это совсем не то. Для того там и стрелочка чтобы написать decltype(func()) — т.е. тип, который бы вернул объект(функтор) func, в ответ на свою операцию скобочки.
Стрелочка для того чтобы перенести определение возвращаемого значения ф-ции правее, в то место, где входной параметр ф-ции, объект func уже определен и может нам сказать, что он возвращает на операцию скобочки.

А decltype(LambdaFunc) — это идентично просто написать LambdaFunc, или даже просто не имеет значения.
Спасибо за наводку, но это не совсем то.
Насколько я понял, std::future делает вычисления в параллельном потоке, и начинает сразу (т.е. нифига не ленится :)).
Ее стоит использовать, когда вам гарантировано понадобится результат, но вы хотите, пока он считается, заняться чем-нибудь другим.
Совсем такое только компилятор может обеспечить.
С функтором немного сложнее, зато имеем явную декларацию поведения — откладывать или не откладывать.
auto a = calc_once([]{ return some_func(); });
cout << a();
Ориентировался на википедию:
«Отложенные вычисления, ленивые вычисления или нестрогие вычисления — концепция в некоторых языках программирования, согласно которой вычисления следует откладывать до тех пор, пока не понадобится их результат.»

Код функтора выполнится при первом требовании, сохранит результат для последующих вызовов.
Если функтор не будет вызван — никакой работы не будет.
Если будет вызван несколько раз — работа произойдет один раз, при первом вызове.

Разве не лениво? :)
visual studio 2010 RC и GCC 4.5 такое осилят.
В gcc 4.4 не хватает лямбд.
Студия от gcc 4.5 отстает в поддержке списков инициализации (но их тут нет).
а чего, сделать для кнопок выпуклые куполообразные штуки, вросшие в общий пластик, никто еще не придумал?
И протереть можно, и нажатие есть.
Еще и музыка такая… Да я всего лишь робот, и делаю тупую физическую работу изо дня в день…
Но я профессионал! и мои пирожные всегда будут содержать правильное кол-во блинчиков. :)
Microsoft		Google			Apple
-----------------------------------------------------------
Windows			ChromeOS		MacOS
Windows Phone		Nexus			iPhone
Bing!			Gooogle!		???


Они не оставляют никакого выбора :)
Берут не за идею, а за то что «Оно работает!».
Возможно, стоит поглядеть в сторону Spore, как там реализовано переключение между экранами планета — звездная система — галактика.
Для этой штуки непомешала бы «кобура» — механизм удобного прицепления к телу. А то как ее блин носить? И еще надежная прилеплялка к стене.
Все это, конечно, здорово, вы-то счастливы. А вот счастливы ли остальные 4-е технолога, что потеряли свое время на собеседования и работу у вас?
Если у вас свои особенные принципы прохождения испытательного срока («останется только один») — то лучше об этом заранее предупреждать.
Было бы интерестно использовать подобные технологии в бытовом дизайне — типа почистил зубы и подвесил зубную щетку в воздухе…
Однако… Спасибо, что на наглядном примере объяснили, что такое «юношеский максимализм» и «звезданутость».
«Если это C++ вакансия – всю сиплюсплюсную лажу оставьте при себе».
«Все вопросы по COM – держите при себе. Вы устарели.»

Налейте мне чаю и ничего не спрашивайте…
Непонятно, почему бы не оставить возможность задавать эту таблицу в коде (текстом), строчка кода — строка таблицы. В качестве альтернативы. Текст — уж очень он универсален.
Да здравствует BOOST_FOREACH…
Вообще тут не просто рациональное зерно, а целое направление — изготовление полезных «магических» предметов. Т.е. в перспективе все больше видятся не прямоугольники с кнопками, а именно подобные «амулеты», обеспечивающие выполнение ф-ций через чиркание, махание, наведение, прикосновение, сжимание, скручивание и т.д.
насчет п.1. — выше уже была идея про генерацию энергии с процесса «чирка».
12 ...
10

Информация

В рейтинге
Не участвует
Откуда
Новосибирск, Новосибирская обл., Россия
Дата рождения
Зарегистрирован
Активность