powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / C++ [игнор отключен] [закрыт для гостей] / Оптимизация вывода
5 сообщений из 5, страница 1 из 1
Оптимизация вывода
    #40033836
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Предположим, есть функция foo(), возвращающая std::ostream& и функция bar() с тяжёлыми
вычислениями внутри. Есть ли возможность изнутри foo предотвратить вызов bar в коде типа
такого:
Код: sql
1.
foo() << bar();


Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Оптимизация вывода
    #40033844
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Ну если foo() вернёт прокси класс вокруг std::ostream&. А bar() вернёт функтор для вызова вычислений. То можно. Синтаксически ничего не изменится.
...
Рейтинг: 0 / 0
Оптимизация вывода
    #40033851
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

Предположим, есть функция foo(), возвращающая std::ostream& и функция bar() с тяжёлыми
вычислениями внутри. Есть ли возможность изнутри foo предотвратить вызов bar в коде типа
такого:
Код: sql
1.
foo() << bar();



Впрочем foo() может продолжать возвращать std::ostream&. Достаточно что бы bar() вернул прокси-класс (точнее объект), который и будет решать вызывать ли вычисления и что-то логировать.
...
Рейтинг: 0 / 0
Оптимизация вывода
    #40033981
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В обобщенных лямбда-языках как-то так.

Код: plaintext
1.
foo(() -> bar())



В новых сях там немного другой синтаксис. С квадратными скобочками кажется.
...
Рейтинг: 0 / 0
Оптимизация вывода
    #40034014
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Код: plaintext
1.
2.
3.
#define foo() if (foo_enabled()) foo_impl()

foo() << bar(); // if (foo_enabled()) foo_impl() << bar()
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Оптимизация вывода
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]