у меня GraphicsItem устанавливает корректный boundingRect в методе paint(Painter...), тк используется painer.fontMetrics().boundingRect(item.text) что криво и мне не нравится...
struct A { int f() const&&{ return 0; } }; что значат два амперсанда после конст?
Хочу реализовать оператор вывода контейнеров template <class Container> ostream &operator<<(ostream &os, const Container &cntr) { for (const auto &it : cntr) { os ...
atomic<int> a; std::thread t1([&] { a.store(1, memory_order_relaxed); }); t1.join(); assert(a.load(memory_order_relaxed) == 1); assert can fire? и...
T pop() { T tmp = data.back() data.pop_back(); return tmp; } Почему такая реализация не обеспечивает строгую гарантию безопасности исключений?
a |= b такой же сокращатель выражений как и a || b ?
std::function<void (A::*)(int)> var1{&A::foo}; std::function<void (int)> var2{&A::foo}; std::function<void (A const &, int)> var3{&A::foo}; наугад попробовал это всякое такое....
void foo(char *); foo гарантированно не изменяет строку. foo(const_cast<char *>("abc")); УБ или не УБ? (я Си-api дергаю)
https://en.cppreference.com/w/cpp/atomic/atomic/fetch_add как в примере мем_орд_релаксед синхронизируется с основным потоком, который считывает дата?
а как мне cout подписать к логгеру? Это, очевидно, дважды удалит cout LOGGER.addSubscriber(std::shared_ptr<std::ostream>(&std::cout))
Хочу запилить логгер, к которому можно подписывать различные ostream. Хранить в логгере вектор<шейред_птр<остреам» нормальное решение?
Если бегло погуглить, то эта функция имеет отношение gcc, clang, кароч к каким-то внутренностям компилятора. Может в некоторых компиляторах это УБ — окей, а с точки зрения плю...
разве не устарело тыщу лет как?
а как тут fetch_add'ы синхронизируются между собой? тред1: 0->1 тред2: 0->1 ...(ну вы поняли)... и в результате видим, например, 1
пофиг на порядок выполнения тредов. Почему мейн-тред будет видеть в результате обязательно 5? Синхронизации же с ним ни у кого нет
T foo() { } ... foo(); Тут есть ub?
Можно ли как-нибудь в gdb узнать активные треды? Я не знаю, как описать нормально. info threads выдает ~160 тредов, большинство (почти все) находятся в wait'e, хочется задетек...
vector<int> a = { 1 }; sort(a.begin(), a.end(), [](int lhs, int rhs) { cerr << lhs << ' ' << rhs << endl; return lhs < rhs; }); Мой гцц выводит ...
питон2 из-за чего subprocess.Popen(cmd, stderr=PIPE, stdout=PIPE) может работать иначе, чем subprocess.call(cmd)?
a |= b такой же ленивый как и a || b ?