Alexander "SonnySlave"
Arseny
DZ
Berkus
Alexander "SonnySlave"
kitsu
А у rxcpp есть способы скастить друг к другу observable? e.g:
rxcpp::observable<Base> obs = rxcpp::observable<>::create<Derived>(...);
Alexander
kitsu
Daniil
Alexander
Alexander "SonnySlave"
Alexander "SonnySlave"
не работал с ними. но подозреваю, что просто компил говно
Berkus
Alexander "SonnySlave"
Alexander "SonnySlave"
ты уверен?
Alexander "SonnySlave"
ну не до такой степени
Кирилл
Alexander "SonnySlave"
может имеется ввиду какая-нибудь -ffast-math
Кирилл
Alexander "SonnySlave"
ну смотри. для меня это выглядит менее дико, чем оптимизации запрещать
Alexander "SonnySlave"
хотя тоже невероятно дико
Кирилл
Кирилл
Не помню, был ли на них запрет, но не удивлюсь, если и на них тоже был
Кирилл
Но точно помню, что мы пытались ради интереса собирать с включённой оптимизацией софт, но он так не работал.
Alexander "SonnySlave"
ну мб там где-то весёлое UB было 😊
Кирилл
Вполне может быть.
Кирилл
Evgenii
Berkus
Evgenii
Evgenii
ну если ты добровольно в таких условиях пошел работать, не понятно еще кто больший идиот
Andrey
это перебор. хотя бы 3
Anatoly
значение пи в военное время - это и есть военная тайна
Vitaliy ◀️TriΔng3l▶️
Когда пойдём на Нью-Йорк, тогда пи считать равным 4 будет удобно
Vitaliy ◀️TriΔng3l▶️
И sqrt(2.0)==2.0
Berkus
sqrt(2.) == cbrt(2.)
Constantine
Andrey
Есть два range-loop. for (auto& a : b) и for (auto&& a : b).
http://coliru.stacked-crooked.com/a/3076969a7943976f
http://coliru.stacked-crooked.com/a/3c5019e1663ddcfe
В чем разница и когда полезно?
Andrey
ассемблер получается одинаковый. Есть ли семантическая разница? и где это полезно?
Andrey
я бы сказал опустошающий
Andrey
очереди в многопотоках обрабатывать
Andrey
меня разница между auto& и auto&& интересует
Ignat
атомарный move
Ignat
это конечно интересная идеома
Alexander "SonnySlave"
Alexander "SonnySlave"
http://en.cppreference.com/w/cpp/language/range-for
Alexander "SonnySlave"
It is safe, and in fact, preferable in generic code, to use deduction to forwarding reference, for (auto&& var : sequence).
Andrey
кроме сохранения типов и квалификаторов, есть ли еще разница?
Alexander "SonnySlave"
Constantine
а, нет, я глупость сморозил
Constantine
вообще есть инфа, что std::vector-у нужен еще один метод типа reserve, который при этом будет гарантировать линию при любой последовательности вызовов
Constantine
а то тут товарищ принес
auto capacity = vector.capacity();
auto size = vector.size() + count;
if (capacity >= size)
return;
capacity = (vector.max_size() - capacity / 2 < capacity ? 0 : capacity + capacity / 2);
if (capacity < size)
capacity = size;
vector.reserve(capacity);
Vladislav
Vladislav
По стандарту
Vladislav
И нужен reserve без инициализации
Constantine
Хуже того, кажись все стандартные reserve уважают пользователя и свалятся в квадрат
Constantine
Что это вообще значит?
Vladislav
Ой, не reserve а resize
Vladislav
В продолжение прошлой дискуссии
Constantine
Хм... это жи можно делать только для trivially constructible
Vladislav
Мне для них и нужно)
Constantine
Ну для них еще хорошо бы уметь буфер напрямую передавать 😆
Vladislav
Ну или так, да)
Constantine
хм...
Constantine
а нельзя сделать reserve и пойти читать .data() в этом случае?
Vladislav
Доступ за пределы size - UB
Vladislav
И size не поменять толком
Constantine
Там достаточно модифицировать гарантию
Vladislav
push_back/insert из буфера оказались даже медленнее варианта с memset