Здравствуйте! В первый раз столкнулся с такой конструкцией, как она называется и почему не работает:
nero_type result = [i, j] (nero_type temp1, nero_type temp2)->nero_type
{
temp1 = 10*i;
temp2 = 20*j;
return temp1+temp2;
}; //nero_type типа int
Называется это лямбда-выражением, но
что-то она странно у вас написана - зачем ей параметры, которые ей не нужны? :)
вы присваиваете result
саму функцию, а не результат ее работы.
Думаю, что вы хотели на самом деле
int result = [](int i, int j){ return 10*i+20*j;}(i,j);
Вот:
#include <iostream>
int main()
{
int i = 10, j = 20;
int result = [](int i, int j){ return 10*i+20*j;}(i,j);
std::cout << result << std::endl;
}
Update
Ну, вот я расписал, что есть что в вашей лямбда-функции
val = std::accumulate(begin(src_images),
end(src_images),
koef_t(0.0),
[i, j] // Захватываются значения внешних переменных `i` и `j`
(koef_t old_val, const neurons_line &image) // параметры функции
-> koef_t // тип возвращаемого значения (обычно не нужен, выводится из `return`)
{ return old_val + (image[i] * image[j]); } // Тело функции
);
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть буфер с байтами RGB (раcжатый jpeg кадра с веб-камеры, без альфы, естественно)Нужно заменить часть этих байт (правый верхний угол) байтами...
Нужно построить алгоритм с временем работы O(mn)На вход подается список положительных целых чисел a_1, a_2,