Size: a a a

2020 July 26

TS

Till Schneider in supapro.cxx
std::slavik
предлагаю на нормальный язык переписать)
Если посмотреть историю коммитов, то видно, что изначально он был написан на плюсах
источник

AF

Aidar Fattakhov in supapro.cxx
Valera Valakas
Товарищи, всем привет!
Не подскажите почему крашится при вызове деструктора для v4?
https://pastebin.com/s9jbfYne

Для больших строк(где, видимо, нет SSO) деструктор работает нормально, а вот для маленьких программа падает.
Привет, не забудь про выравнивание)
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
Danya
Или как аллокатором от Т выделить память под два сайза?)
rebind_alloc. Так же, как allocator<T> выделяет память под list<T>::__node
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
Ioann_V
А почему вектор и его данные(размер, итератор) не принято хранить в одном блоке памяти вместе с данными?
Доступ к размеру будет медленнее же
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
std::slavik
Вопрос про move семантику - почему это работает? В одном потоке выделяю на стеке объект структуры, передаю через очередь и move в другой поток, поидее после этого выход из функции происходит и объекты уничтожаются, но работает
 mail_t mail;//= new mail_t;
 mail.type = MessageType_t::SCENARIO_SET;
 const char *cmsg = (const char *)string_buffer_p;
 mail.cmsg = cmsg;
 while(!queue_js_app_rx.push(std::move(mail))){};
Мув в цикле это прострел ноги
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
Nano
По сути move это всё равно что передача указателя, если очень упростить. Сами данные у тебя уже где-то лежат, может в куче, может в сегменте глобальных данных. Например, где у тебя хранится string_buffer_p?
Нет, std::move это просьба по возможности использовать мув операции
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
std::slavik
то есть move если не может обеспечить перемещение - делает копирование?
Мув ничего не копирует и не перемещает. Если тип не поддерживает мув операции, то в месте, где требуется копирование, произойдет копирование, а не мув
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
std::slavik
у меня вопрос скорее не про написание своих конструкторов перемещения, а про то - стоит ли мне париться если я просто оберну те места где раньше было копирование в std::move
Не любое копирование может быть заменено на мув, даже если тип поддерживает мув
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
Wild_Wind
Гляжу в сурсы libstdc++, stddef.h, враппер над сишной либой:

#if defined(__need_NULL)
#undef NULL
#ifdef __cplusplus
#  if !defined(__MINGW32__) && !defined(_MSC_VER)
#    define NULL __null

__null
- это что вообще?
Вроде, можно считать литералом, наверное. Но я не понял.
Это литерал 0, который должен применяться как нулевой указатель, используется для реализации некоторых варнов в гцц
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
Wild_Wind
А тип её?
Вжухни decltype и посмотри
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
/bin/cat
а можно ли сделать inline для конструктора?
Да
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
/bin/cat
а что может серьезно отличаться в самых простых классаx, как std::string и std::vector?
Гцц 5 нервно смеется
источник

D

Danya in supapro.cxx
Artöm Bakri Al-Sarmini
Гцц 5 нервно смеется
А шо там?
источник

AF

Aidar Fattakhov in supapro.cxx
Коровы я полагаю
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
/bin/cat
В c++ есть что-нибудь вроде link_name из раста? Т.е. явно сказать, что вот этот конструктор обязан использовать C2Ev, а не C1Ev, который мне дает GCC
Это две разные не взаимозаменяемые функции
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
Danya
А шо там?
При переходе с 4 на 5 поменялся аби стдстроки. Горело у многих
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
Нужно было перекомпилировать все шареные зависимости, где стдстрока была в публичном интерфейсе. Кто не мог это сделать по каким-то причинам, ждал или выкручивался
источник

DF

Dollar Føølish in supapro.cxx
Можно ли это считать аргументом в пользу Статик либ?
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
Это известный аргумент
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
Не у всех есть возможность линковать статически
источник