
Denis
20.06.2018
06:04:59
смотреть с какими данными работаешь и как

Oleg
20.06.2018
06:05:22
void LinksBagManager::updatePublishDate(const QString& id, const QString& date)
{
m_BookmarksModel->UpdatePublishDate(id, date);
m_BookmarksModel->RefreshBookmark(id);
}

Denis
20.06.2018
06:05:23
если ты можешь гарантировать что только чтение-чтение или вообще не используешь данных, используемых первым - то все ок

Oleg
20.06.2018
06:06:23
значит надо заниматься синхронизацией.

Google

Oleg
20.06.2018
06:06:27
ясно. Спасибо

Denis
20.06.2018
06:06:36
ну тут ничего не понять. Это на самом деле не тот вопрос, на который можно ответить глядя только на метод, если он использует хоть какие-то данные

Oleg
20.06.2018
06:07:15
если что-то модифицируется, то лучше синхронизировать, верно?

Denis
20.06.2018
06:07:26
тип того

Oleg
20.06.2018
06:09:55
что-то мне кажется, что я делаю что-то не так

Vyacheslav
20.06.2018
06:17:28

Oleg
20.06.2018
06:17:52
это-то понятно

Vyacheslav
20.06.2018
06:18:42

Evgeniy
20.06.2018
07:39:23

Vyacheslav
20.06.2018
07:40:49

Ilia
20.06.2018
07:41:03

Spoonson
20.06.2018
07:41:20

Google

Evgeniy
20.06.2018
07:41:22

Vyacheslav
20.06.2018
07:42:20
О! Протягивать результат через шаблонную переменную! Гениально
Для результата-структуры только не уверен, будет ли работать

Evgeniy
20.06.2018
07:43:28

Ilia
20.06.2018
07:44:35
Параллельное программирование на С++ в действии. Практика разработки многопоточных программ ??
Эту. Великолепная книга.
Причём, она НЕ ТОЛЬКО по С++, как ни странно.
Ещё можно Грегори Эндрюс, основы многопоточного, параллельного и распределённого программирования.
https://github.com/dprotopopov/LaplaceEquation/blob/master/%D0%AD%D0%BD%D0%B4%D1%80%D1%8E%D1%81%20%D0%93.%D0%A0.%20%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D1%8B%20%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE%D0%BF%D0%BE%D1%82%D0%BE%D1%87%D0%BD%D0%BE%D0%B3%D0%BE%2C%20%D0%BF%D0%B0%D1%80%D0%B0%D0%BB%D0%BB%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE%20%D0%B8%20%D1%80%D0%B0%D1%81%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE%20%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F.djvu
Но эта книга чуть более тяжеловесная и не по С++ совсем.


Vyacheslav
20.06.2018
07:45:34
пилим костыли с С++98 (с)
Если бы был вариант сделать, чтобы компиляция падала в случае не-constexpr вызова, то их пилить бы не пришлось.

Крис
20.06.2018
07:46:36

Evgeniy
20.06.2018
07:47:00

Aidar
20.06.2018
07:47:32
Разве не просто сунуть в constexpr переменную результат?
Со стороны функции да никак

Ilia
20.06.2018
07:48:18

Spoonson
20.06.2018
07:48:21
есть пропозал (или предложения) по поводу in_constexpr https://github.com/SaadAhmad/in_constexpr

Vyacheslav
20.06.2018
07:48:29

Aidar
20.06.2018
07:48:39

Vyacheslav
20.06.2018
07:49:55
Чё это?
Это если мне constexpr функцию много раз нужно дергать во время компиляции и с разными параметрами.
В любом случае спасибо за подсказки.

Aidar
20.06.2018
07:50:17

Vyacheslav
20.06.2018
07:51:00

Vhäldemar
20.06.2018
07:52:18
почему негде?
в своём скопе создавай

Google

Aidar
20.06.2018
07:53:04
Блин засунь в шаблон
Это из constexpr ты не можешь пропихнуть в параметр шаблона, но наоборот то можно

Ilia
20.06.2018
07:57:32

Igor
20.06.2018
08:34:18

Anatoly
20.06.2018
08:36:09

Oleg
20.06.2018
09:44:39
я, конечно, хз, но на моем проекте clang code model из критора, работает хуже, чем стандартный парсер

Vergil
20.06.2018
09:51:20

Oleg
20.06.2018
09:51:27
угу

Anatoly
20.06.2018
09:54:14

Vyacheslav
20.06.2018
10:07:01

Ilia
20.06.2018
10:08:24

Vyacheslav
20.06.2018
10:10:46
Производительность важна, да.

Antony
20.06.2018
10:11:23

Anatoly
20.06.2018
10:12:21
@antoshkka Антон, Игорь дал ссылку
Это elaborated type specifier - https://en.cppreference.com/w/cpp/language/elaborated_type_specifier

Antony
20.06.2018
10:12:28

Kirill
20.06.2018
10:13:56

Google

Alexander
20.06.2018
10:14:10

Kirill
20.06.2018
10:15:14

Anatoly
20.06.2018
10:15:22

Alexander
20.06.2018
10:15:37
почему ужос?
никто не мешал сделать таким constexpr изначально
а теперь опомнились и сделали как надо. НО с другим синтаксисом.

Kirill
20.06.2018
10:15:59
а не тернарные операторы и боль
это то из чего состояли констекспр функции в С++11
из боли на 80% из тренарных операторов на 20%

Admin
ERROR: S client not available

Antony
20.06.2018
10:19:34

Alexander
20.06.2018
10:19:53
не-не-не, не надо переводить разговор в эту сторону
надо признать - с constexpr откровенно проебались

Antony
20.06.2018
10:20:39
Имхо наоборот - плавно движемся в сторону максимальной функциональности

Kirill
20.06.2018
10:21:18
надо признать - с constexpr откровенно проебались
и проебались и сделали очень круто одновременно
проеб в плане отсутствия гарантий кроме как присваивание констекспр переменной результата это фейл
НО компайл тайм вычислания стали адекватными это однозначно хорошо

Alexander
20.06.2018
10:21:49
никто не мешал сделать constexpr как constexpr!

Antony
20.06.2018
10:22:15

Alexander
20.06.2018
10:22:38
почему?

Vyacheslav
20.06.2018
10:22:56

Antony
20.06.2018
10:24:10
Потому что сейчас сonstexpr метод можно звать как на ратнайме, так и в компайл тайме. Если форсировать выполнение в компайл тайме только, то придется дублировать методы, и один писсть без constexpr

Google

Antony
20.06.2018
10:24:31
Так что всё правильно сделали

A.D.
20.06.2018
10:25:40
а почему '!' вместо нового keyword'а?

Vyacheslav
20.06.2018
10:25:51
Я бы не сказал, что стримы уж настолько плохи.

Antony
20.06.2018
10:26:23

A.D.
20.06.2018
10:27:24
формально - да. визуально - другое дело
или в виде аттрибута

Matwey
20.06.2018
10:44:13
Господа, я обнаружил, что не умею пользоваться std::vector

Evgeny
20.06.2018
10:44:38
лол

Matwey
20.06.2018
10:44:42
Как мне его ресайзнуть не инициализируя содержимое (хранится float)? Или пользоваться reserve() capacity()?

Andrei
20.06.2018
10:45:09
reserve

Vyacheslav
20.06.2018
10:45:12

Matwey
20.06.2018
10:46:20
Мне кажется, что reserve не для этого предназначался исходно :(

Konstantin
20.06.2018
10:48:32
после reserve ты не сможешь к его элементам обращаться, так что только через свой аллокатор

Matwey
20.06.2018
10:49:44

Vhäldemar
20.06.2018
10:49:55

Matwey
20.06.2018
10:50:20
И на самом деле через vec[n] тоже смогу

Konstantin
20.06.2018
10:50:21
аксессоры контролируют размер а не капасити если не ошибаюсь и кидают out of range

Matwey
20.06.2018
10:50:26
А вот через vec.at(n) не смогу
at() кидает исключения, остальные ничего не контролируют

Konstantin
20.06.2018
10:50:54
ну и соответсвенно сунуть его в алгоритмы и нормально обработать не сможешь