Berkus
Сам класс создаётся в куче и в конструкторе создаётся вектор ходящий в кучу ещё раз.
нет, переменная создается на стеке и создает на куче хранилище для данных
Berkus
можешь для начала вернуться к основам и разобраться как отличаются стековые переменные и переменные на куче
Aleksander
будь добр излагать задачу яснее если тебе надо решение отличное от string_view/string/vector/boost::asio::const_buffers
Куда уж яснее? Хочу в рантайме создавать экземпляр класса с массивом внутри. Размер массива всегда разный.
Berkus
Примерно также и выглядит мой "костыль" с malloc
более аккуратно будет struct My { vector v; } две аллокации зато портабельно
🐙 Antony
да, так себе решение
да, надо обернуть в шаблонный метод который подобные классы порождает и возвращает unique_ptr. Тогда будет не так страшненько.
Aleksander
mem = malloc(sizeof(T) + buf_size) T* t = new(mem) T(mem, buf_size) Вполне портабельно, но страшно.
Aleksander
а когда у классов разный набор параметров конструктора, то на каждый вариант приходится свой костыль писать.
Aleksander
боюсь представить как это будет выглядеть
Aleksander
Все еще непонятно зачем делать так вместо нормального
хождение в кучу операция дорогая. Таким "костылём" я уменьшаю их число вдвое. Не смог найти способ лучше.
Igor
cmake+ninja рулит за скорость
сенсей, научите, как в этой связке цветные сообщения от шланга/гцц настроить?
Igor
cmake --build build_dir куда мне здесь воткнуть сед, вручную процессить оутпут смака?
Deleted Account
https://github.com/zaizupro/dotfiles/blob/master/scripts/makek.sh
Igor
https://github.com/zaizupro/dotfiles/blob/master/scripts/makek.sh
а интересный вариант но я про то, что современный шланг и гцц самостоятельно красит сообщения, и при сборке мейком всё ок, а вот ниндзя съедает всю подсветку и выплёвывает простой текст вроде как у ниндзи бывает какой-то флаг для поддержки цвета, но как его быстро вкрутить в смак я не нашёл вчера
Berkus
хождение в кучу операция дорогая. Таким "костылём" я уменьшаю их число вдвое. Не смог найти способ лучше.
прости, а ты уже замерил стоимость этой операции в твоей задаче? график покажи
Berkus
сенсей, научите, как в этой связке цветные сообщения от шланга/гцц настроить?
ээ у меня в iterm2 это включено, если тебе надо - погугли
Aleksander
прости, а ты уже замерил стоимость этой операции в твоей задаче? график покажи
Не покажу. Средства рисования подобных графиков толстоваты, не помещаются в микроконтроллер с 64кБ озу. Уменьшение числа вызовов malloc также уменьшает число остановок шедулера RTOS, это тоже важно.
Igor
запускай нинзю рукой
работает, да, думал может для смака тоже что-нибудь придумали --build вообще православно или так себе?
Berkus
если микроконтроллер то тут вопросов нет
Berkus
вообще без маллока можно обойтись
Aleksander
на Це приходится слишком много велосипедов писать. Лучше на крестах останусь.
Thorn
зачем вообще использовать malloc() на микроконтроллере с 64Кб?
Vitaliy ◀️TriΔng3l▶️
Это как использовать free на ракете
Thorn
тем более если ОСРВ, то все равно половина памяти уйдет под стеки задач и очереди/fifo
Aleksander
зачем вообще использовать malloc() на микроконтроллере с 64Кб?
Позволяет некоторые вещи писать сильно проще и переносимей между проектами. К тому же я взял реализацию работающую за О(1), позволяет получить прогнозируемые времянки.
Thorn
а фрагментация?
Aleksander
а фрагментация?
Склеивание свободных блоков тоже за о1.
Aleksander
Загугли tlsf
Berkus
tlsf хороший да
Aleksander
тем более если ОСРВ, то все равно половина памяти уйдет под стеки задач и очереди/fifo
А ещё я использую динамическое создание/удаление задач. И всё потому что конечные автоматы хороши только до определенного момента.
Alexander "SonnySlave"
https://wiki.qt.io/New_Features_in_Qt_5.10
🐙 Antony
https://wiki.qt.io/New_Features_in_Qt_5.10
Для меня это выглядит как хороший знак: стандартная библиотека С++ в некоторых вещах ушла вперёд и теперь Qt догоняет (например QStringView, QSemaphoreReleaser, QRandomGenerator)
Alexander "SonnySlave"
Alexander "SonnySlave"
потому что обратная совместимость
Alexander "SonnySlave"
и давай, выкидывай QString
Square
потому что обратная совместимость
Они могут скрыть за своим интерфейсом легко
Alexander "SonnySlave"
удачи пользоваться std::string
Stanislav
ну лан, оставить QString
🐙 Antony
будет хорошо если в 6.0 выкинут свои контейнеры :)
Возможно заменят QContainerName на class ContainerName { shared_ptr<std::ContainerName> holder_; } Qt очень сильно подсел на COW, и слезть врядли получится
Anonymous
Про ASPX нигде чатика нет?
Anonymous
ASP.NET
Square
Square
Ох, а qstringref?
Я реально не понял нафига им qstringview
Anonymous
Сенкс
Stanislav
Я реально не понял нафига им qstringview
QStringView is designed as an interface type; its main use-case is as a function parameter type. When QStringViews are used as automatic variables or data members, care must be taken to ensure that the referenced string data (for example, owned by a QString) outlives the QStringView on all code paths, lest the string view ends up referencing deleted data. When used as an interface type, QStringView allows a single function to accept a wide variety of UTF-16 string data sources. One function accepting QStringView thus replaces three function overloads (taking QString, QStringRef, and (const QChar*, int)), while at the same time enabling even more string data sources to be passed to the function, such as u"Hello World", a char16_t string literal.
Square
Ммм... один стрингвью на все
Square
Красиво, только вот они опоздали :(
Anonymous
имеешь ввиду boost::string_ref ?
Anonymous
В смысле опоздали с QStringRef из-за буста? Или какая-то иная причина?
Anonymous
А, сорр, я по диагонали прочел походу.
ttldtor
https://wiki.qt.io/New_Features_in_Qt_5.10
Introduced new QML types: Action, ActionGroup, MenuBar 4 года ждал
Square
почему опоздали?
Опоздали вперёд комитета это выкатить
Berkus
удачи пользоваться std::string
есть u16string + алгоритмы
Anonymous
есть u16string + алгоритмы
Ничего не придумали лучше std::wstring_convert?
Anonymous
Для UTF-8 <-> UTF-16.
Berkus
codecvt::utf8_to_utf16 же