SObjectizer-5.8.5.1 is available

6 views
Skip to first unread message

Yauheni Akhotnikau

unread,
May 21, 2026, 12:40:54 AMMay 21
to SObjectizer
A new version of SObjectizer is available:


This is an important update with a fix for a bug in the timer_heap implementation that affects the default SObjectizer timer engine.

Dmitry Valyukov

unread,
Jun 4, 2026, 9:21:56 AM (14 days ago) Jun 4
to sobje...@googlegroups.com
Привет,
обратил внимание:
template< typename Lambda >
void invoke_noexcept_code_block(Lambda && lambda)
{
    try { lambda(); } catch(...) { std::abort(); }
}
В этом месте (и в других аналогичных) наверно стоило бы использовать std::forward для случая различных перегрузок сигнатур:
struct MyFunctor {
    void operator()() &  { std::cout << "lvalue\n"; }
    void operator()() && { std::cout << "rvalue\n"; }
};

Если передать временный объект функтора в функцию, то:

  • Без std::forward внутри вызовется operator() &, потому что имя параметра lambda — это lvalue, даже если параметр был связан с rvalue.

  • С std::forward<Lambda>(lambda)() вызовется operator() && для rvalue и operator() & для lvalue.

  • Если переданная лямбда-функция или функтор захватывает move-only типы (например, std::unique_ptr) и её operator() спроектирован для вызова только как rvalue, без std::forward код не скомпилируется.

- Д.В.


чт, 21 мая 2026 г. в 07:40, Yauheni Akhotnikau <eao...@gmail.com>:
A new version of SObjectizer is available:


This is an important update with a fix for a bug in the timer_heap implementation that affects the default SObjectizer timer engine.

--
Вы получили это сообщение, поскольку подписаны на группу "SObjectizer".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес sobjectizer...@googlegroups.com.
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/sobjectizer/f5665ef5-c349-41e2-bc09-914f6238a8f4n%40googlegroups.com.

Yauheni Akhotnikau

unread,
Jun 4, 2026, 9:26:31 AM (14 days ago) Jun 4
to SObjectizer
Доброго дня!

Большое спасибо! Зафиксирую себе чтобы исправить.

Dmitry Valyukov

unread,
Jun 4, 2026, 11:46:22 AM (14 days ago) Jun 4
to sobje...@googlegroups.com
Привет еще раз )

Тут public не обязательно для структур:
struct timer_type : public timer_object< Thread_Safety >
{
(оно ни на что не влияет, просто избыточно)

- Д.В.

чт, 4 июн. 2026 г. в 16:26, Yauheni Akhotnikau <eao...@gmail.com>:
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/sobjectizer/e7560c1a-91bd-4282-9ccd-eefa7d316615n%40googlegroups.com.

Yauheni Akhotnikau

unread,
Jun 4, 2026, 12:11:46 PM (14 days ago) Jun 4
to sobje...@googlegroups.com
On Thu, Jun 4, 2026 at 6:46 PM 'Dmitry Valyukov' via SObjectizer <sobje...@googlegroups.com> wrote:

Тут public не обязательно для структур:
struct timer_type : public timer_object< Thread_Safety >
{
(оно ни на что не влияет, просто избыточно)

Я знаю, но всегда так пишу для единообразия и чтобы не задумываться лишний раз. 
Reply all
Reply to author
Forward
0 new messages