Size: a a a

2020 June 17

RR

Roman Rubanenko in pro.cxx
Побитый Кирпич
Идеальный, если мы не боимся блокировать поток, который хочет получить результат, потому что future умеют адекватно из коробки только ждать. В gui потоке уже не вызовешь
Ты сейчас про оверхед wait_for(0) или про неудобство?
источник

ПК

Побитый Кирпич... in pro.cxx
Roman Rubanenko
Ты сейчас про оверхед wait_for(0) или про неудобство?
про неудобство
источник

RR

Roman Rubanenko in pro.cxx
С этим согласен. В то же время, если не очень часто пользоваться, то можно пережить, а если часто, то написать обёртки/хелперы чтобы снизить когнитивную нагрузку.
источник

В

Владимир in pro.cxx
Андрей Руссков
там кстати можно обернуть так, чтобы "кидать" лямбду на выполнение в другой поток
Не получается, писал удп сервер асио, на корутюнах, оборачивали в бинд на потоки, и кондишины применяли, не работает в qt.
источник

MM

Mikhail Matrosov in pro.cxx
Neargye
> пропозал уже есть
можете показать? мне было бы полезно)
Кстати. Я понял, почему в constexpr функциях нельзя делать static constexpr переменные. Потому что если значение такой переменной зависит от параметра, то constexpr функция может возвращать разные значения для одних и тех же вызовов, если они будут сделаны в разных порядках. Например:
constexpr int f(int x) {
 static constexpr int i = x;
 return i;
}

Если вызвать сначала f(0) затем f(1), то получим 0, 0. А если сначала f(1), а потом f(0), то получим 1, 1. Что довольно неожиданно.

Неудобно, что это запрещает делать  static constexpr переменные не зависящие от параметров, но тут вроде бы логично, что разница довольно тонкая.
источник

АР

Андрей Руссков... in pro.cxx
ну как бы всё проще
источник

АР

Андрей Руссков... in pro.cxx
constexpr функция должна уметь вычисляться не только на этапе компиляции, но и в рантайме
источник

АР

Андрей Руссков... in pro.cxx
а сделать constexpr переменную из рантайм значения проблематично
источник

MM

Mikhail Matrosov in pro.cxx
Хм. Только что осознал, что даже вот это уже не работает:
constexpr int f(int x) {
 constexpr int i = x;
 return i;
}
источник

MM

Mikhail Matrosov in pro.cxx
при этом нельзя помечать параметры как constexpr
источник

MM

Mikhail Matrosov in pro.cxx
т.е. если заводишь constexpr переменную внутри constexpr функции, то она не может зависеть от параметров (что логично)
источник

MM

Mikhail Matrosov in pro.cxx
тогда я снова не понимаю, какого чёрта она не может быть static 😕
источник

В

Владимир in pro.cxx
Mikhail Matrosov
Кстати. Я понял, почему в constexpr функциях нельзя делать static constexpr переменные. Потому что если значение такой переменной зависит от параметра, то constexpr функция может возвращать разные значения для одних и тех же вызовов, если они будут сделаны в разных порядках. Например:
constexpr int f(int x) {
 static constexpr int i = x;
 return i;
}

Если вызвать сначала f(0) затем f(1), то получим 0, 0. А если сначала f(1), а потом f(0), то получим 1, 1. Что довольно неожиданно.

Неудобно, что это запрещает делать  static constexpr переменные не зависящие от параметров, но тут вроде бы логично, что разница довольно тонкая.
Компилятор не понимает, что от него хотят, сделайте метафункцией. template<int n> struct {static constexpr value = n};
источник

MM

Mikhail Matrosov in pro.cxx
Владимир
Компилятор не понимает, что от него хотят, сделайте метафункцией. template<int n> struct {static constexpr value = n};
чего он не понимает?..
источник

D

Danya in pro.cxx
Mikhail Matrosov
тогда я снова не понимаю, какого чёрта она не может быть static 😕
Буду ждать второй версии доклада про спецификаторы))
источник

MM

Mikhail Matrosov in pro.cxx
Danya
Буду ждать второй версии доклада про спецификаторы))
я через две недели рассказываю про константы, и как раз пытаюсь понять, что там происходит 😁
источник

С

Сергей in pro.cxx
Mikhail Matrosov
я через две недели рассказываю про константы, и как раз пытаюсь понять, что там происходит 😁
где , если не секрет?
источник

В

Владимир in pro.cxx
Mikhail Matrosov
чего он не понимает?..
Вы два раза посчитали одну и туже переменную во время компиляции, что изначально в нее положите то и будет константой.
источник

MM

Mikhail Matrosov in pro.cxx
Сергей
где , если не секрет?
источник

С

Сергей in pro.cxx
а, блин, точно точно )) спасибо )
источник