0 / 0 / 0
Регистрация: 14.09.2019
Сообщений: 9
1

Разъяснение работы кода

10.01.2020, 06:36. Показов 1489. Ответов 2

Студворк — интернет-сервис помощи студентам
Есть определённый программа, которая вызывает несколько функций
с одинаковыми входными данными.
В коде программы есть место, которое я не понимаю. Если кто-то сможет подробно объяснить, что происходит в блоке буду благодарен.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <iostream>
 
template <typename ... Ts>
static auto multicall(Ts ...functions)
{
    return [=](auto x) {
        (void)std::initializer_list<int>{ //конкретно интересует этот блок. Что конкретно возвращает эта лямбда и как происходит инициализация initializer_list<int> в строке ниже?
            ((void)functions(x), 0)... 
        };
    };
}
 
template <typename F, typename ... Ts>
static auto for_each(F f, Ts ...xs) {
 
    (void)std::initializer_list<int> {  ((void)f(xs), 0)... };
}
 
static auto brace_print(char a, char b) {
    return [=](auto x) {
        std::cout << a << x << b << ", ";
    };
}
 
 
 
 
int main()
{
    //auto k(brace_print1('/', '1', 's', 'k'));
    auto f(brace_print('(', ')'));
    auto g(brace_print('[', ']'));
    auto h(brace_print('{', '}'));
    auto nl([](auto) { std::cout << '\n'; });
 
    auto call_fgh(multicall(f, g, h, nl));
 
    for_each(call_fgh, 1, 2, 3, 4, 5);
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.01.2020, 06:36
Ответы с готовыми решениями:

Разъяснение кода
Доброго времени суток, такая проблема, надеюсь поможете безвозмездно. Имеется программа...

Разъяснение работы цикла while()
Всем добрый день. Я начинающий программист, да и к тому же учусь на Java. А тут попался код, на...

Советы по ускорению работы кода + оценка самого кода
Вчера вечером сел написать 3 консольные программки для работы с шаблонами размножения текста:...

Разъяснение работы кода для работы с документом Word
Помогите пожалуйста разобраться с кодом построчно, не совсем понятен принцип действия var d =...

2
5884 / 3288 / 1351
Регистрация: 07.02.2019
Сообщений: 8,310
10.01.2020, 07:34 2
Лучший ответ Сообщение было отмечено alka1da как решение

Решение

Цитата Сообщение от alka1da Посмотреть сообщение
конкретно интересует этот блок. Что конкретно возвращает эта лямбда
ничего она не возвращает, а вот multicall возвращает эту самую лямбду, которая вызывает функции, переданные через параметры (пакет параметров) в multicall, с аргументом x
Цитата Сообщение от alka1da Посмотреть сообщение
как происходит инициализация initializer_list<int> в строке ниже
он инициализируется нулями, при этом вызывая соответствующую функцию(т.е. результатом выражения ((void)functions(x), 0)
0
6577 / 4562 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
10.01.2020, 10:05 3
Цитата Сообщение от alka1da Посмотреть сообщение
Есть определённый программа, которая вызывает несколько функций
А этот программа вообще работает, или хотя бы компилируется?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.01.2020, 10:05
Помогаю со студенческими работами здесь

Разъяснение кода
Добрый день! Подскажите, что делает вот этот код css: .main &gt; div::before, .main &gt; div:hover ~...

Разъяснение кода
Можете объяснить что здесь вызываеться и использується namespace PREDPR { class Program ...

Разъяснение кода
Ребят, можете объяснить (если можно, построчно) что происходит в этом фрагменте кода? ...

Разъяснение кода программы о 8 ферзях
Моя программа: Расставить 8 ферзей на шахматной доске размером 8х8 так, чтобы ни один ферзь не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru