ttldtor
Блин, только хотел сказать, что кодом на коллбэках тут никого не испугать, потому что большинство здесь имеют многолетний опыт... и зашёл студент...
Roman
ясно, так-что пока продолжаю писать API серверы на Go))
ttldtor
Насколько мне известно, все рано или поздно приходят к коллбэкам...
ttldtor
лямбда там будет, функтор... не важно. Просто это быстрее
ttldtor
Странно, почему Крис забросил https://github.com/chriskohlhoff/executors
Nikita
Вопрос к экспертам по C++20: за что задепрекейтили std::is_pod ?
Dr. Friedrich
Не, это скорее про co_await или аналогичный механизм.
Александр
Вопрос к экспертам по C++20: за что задепрекейтили std::is_pod ?
Не эксперт, но писали: чтобы юзали is_standard_layout и is_trivially_copyable. Вместе это = is_pod, но на практике нужно или одно, или другое
Александр
Вообще, подробнее есть в комментах к статьей на хабре, Антон там что-то отвечал
Roman
эта функция выполняется в goroutine'е: go doBlockingStuff() вся магия в том, что она не блокирует другие рутины своими блокирующими вызовами, за это отвечает go runtime scheduler
Roman
Насколько мне известно, все рано или поздно приходят к коллбэкам...
callback'и нужны только в контексте event loop'а, в случае Go они по большей степени не нужны для асинхронного программирования
Anonymous
:)
Anonymous
Добро пожаловать. Снова.
Anonymous
☺️
Anonymous
Выучил стандарт? Сейчас сдавать будешь.
Matway
Стандарт нельзя выучить. Можно пытаться бежать, не слишком сильно отставая.
Berkus
Вопрос к экспертам по C++20: за что задепрекейтили std::is_pod ?
потому что понятие POD исключили из стандарта
Berkus
А теперь, дамы и господа, новейшие исследования в области указателей. Я представляю вам лучшее, что могла выдать двадцатилетняя тренировка в ган-ката WEAK_UNIQUE_PTR встречайте https://github.com/telegramdesktop/tdesktop/blob/master/Telegram/SourceFiles/base/weak_unique_ptr.h#L60
Berkus
Александр
По-моему это называется observer_ptr
Александр
Ссылок им мало.
Ну ссылки не занулить
Anonymous
Эт да.
🦥Alex Fails
🦥Alex Fails
/cppref observer_ptr
FailsBot
http://en.cppreference.com/w/cpp/experimental/observer_ptr
Berkus
было бы логично его так и назвать
Александр
Жесть, конечно
Constantine
http://en.cppreference.com/w/cpp/experimental/observer_ptr
это точный аналог reference wrapper, только указатель?
Constantine
почему название не "pointer wrapper"
Constantine
и конструктор не std::ptr(x) ?
Anonymous
почему название не "pointer wrapper"
It is intended as a near drop-in replacement for raw pointer types, with the advantage that, as a vocabulary type, it indicates its intended use without need for detailed analysis by code readers.
Berkus
да ни в чем, просто заметное название
Constantine
ну pointer_wrapper имхо достаточно заметное
Anonymous
С моей точки зрения "pointer wrapper" не указывает на то, что он используется для "наблюдения" за объектом.
Constantine
а в чем состоит суть наблюдения?
Constantine
It is intended as a near drop-in replacement for raw pointer types, with the advantage that, as a vocabulary type, it indicates its intended use without need for detailed analysis by code readers
Constantine
я не вижу здесь слово "observe"
Anonymous
В названии.
Constantine
ну и почему такое название
Berkus
любишь же ты до тараканов доебаться
Berkus
std::experimental::observer_ptr is a non-owning pointer, or observer. The observer stores a pointer to a second object, known as the watched object. An observer_ptr may also have no watched object.
Berkus
а ссылку открыть не можешь
Constantine
я не понимаю, почему нельзя унифицировать его make-метод с std::ref/std::cref в std::ptr и почему нельзя унифицировать название этого класса с reference_wrapper
Constantine
если по сути они выражают одно и то же с точностью до NullablePointer / NotNullablePointer
Anonymous
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3840.pdf
Anonymous
Вот крч.
Constantine
ссылки это замечательно, но вопрос остается вопросом
Constantine
и я полагаю, что в 11 страницах этого документа ответ на этот вопрос не приводится
Berkus
ну ты прочитай, чего гадать
Constantine
The next section exhibits the essential aspects of observer_ptr , our candidate for the (facetious yet descriptive) title of “World’s Dumbest Smart Pointer.”
Constantine
ответ не содержится
Constantine
ну ты прочитай, чего гадать
к сожалению, есть достаточно большая группа личностей, которая будет кидать ссылки на 11 страниц документа вместо ответа на вопрос, при этом ответ в этом документе содержаться не будет
Vladislav
основной смысл observer_ptr'а - в названии, поясняющим семантику. pointer_wrapper теряет этот смысл
Berkus
а расскажи, почему ты не пишешь на го? там гораздо менее токсичное коммьюнити
Constantine
основной смысл observer_ptr'а - в названии, поясняющим семантику. pointer_wrapper теряет этот смысл
я не понимаю, почему observer есть семантика класса-обертки для указателя, который доказанно существует в контексте в связи с внешней логикой
Alexander "SonnySlave"
ох что-то мне подсказывает, что комьюнити везде токсичное
Constantine
а расскажи, почему ты не пишешь на го? там гораздо менее токсичное коммьюнити
это не токсичность коммьюнити, это фича отдельных личностей
Berkus
это не токсичность коммьюнити, это фича отдельных личностей
ну в го коммьюнити гораздо меньше отдельных личностей, что должно считаться преимуществом в таком случае
Constantine
основной смысл observer_ptr'а - в названии, поясняющим семантику. pointer_wrapper теряет этот смысл
и я в действительности не понимаю, чем этот класс отличается от reference_wrapper да еще и http://www.boost.org/doc/libs/1_31_0/libs/python/doc/v2/ptr.html#ptr-spec
Vladislav
я не понимаю, почему observer есть семантика класса-обертки для указателя, который доказанно существует в контексте в связи с внешней логикой
использование обертки вместо указателя указывает на наличие внешней логики (почти как просто комментарий). К сожалению, средствами языка это никак нельзя заэнфорсить
Berkus
boost.python? srsly?
Constantine
boost.python? srsly?
да пофиг, логика та же
Constantine
я название гуглил
Berkus
да пофиг, логика та же
> used to indicate reference semantics for pointers passed to Python callbacks. видишь? а observer_ptr показывает конкретно что этот указатель - обсервер
Constantine
использование обертки вместо указателя указывает на наличие внешней логики (почти как просто комментарий). К сожалению, средствами языка это никак нельзя заэнфорсить
я не понимаю, чем название observable_ptr отличается от pointer_wrapper в плане понимания названия читающим, но сохранение пары reference <-> pointer в названиях для указателей по сути, которые не бывают и бывают нулем, мне кажется правильной идеей
Constantine
в частности, я уверен, что shared_ptr который никогда не nullptr должен называться shared_ref
Constantine
> used to indicate reference semantics for pointers passed to Python callbacks. видишь? а observer_ptr показывает конкретно что этот указатель - обсервер
обсервер в каком смысле? ссылка на владельца под оберткой будет reference_wrapper, а ссылка на опционального владельца observer_ptr?
Berkus
ты про документацию слышал? вот это - часть документации
Constantine
СЕМАНТИКОЙ отличается
семантически ссылка на владельца это не слово observer а слово owner
Constantine
и меня все-таки категорически интересует, а ВСЕГДА НЕНУЛЕВАЯ версия, абсолютно идентичная reference_wrapper, должна называться observer_ref?
Viacheslav
Owner и observer — две абсолютно разные вещи.