170 похожих чатов

Куда размещать std::string в структурах, чтобы выравнивание было оптимальным?

30 ответов

14 просмотров

Куда угодно

serfcity--fsanitize=undefined,address Автор вопроса
serfcity -fsanitize=undefined,address
В смысле?

Ну, если уж так интересно - alignof(string) зачастую равно alignof(pointer)

serfcity--fsanitize=undefined,address Автор вопроса
Александр Водянников
В прямом

Оно же должно зависеть от sizeof std::string?

serfcity -fsanitize=undefined,address
Оно же должно зависеть от sizeof std::string?

sizeof std::string всегда одинаков на данной платформе

serfcity -fsanitize=undefined,address
Оно же должно зависеть от sizeof std::string?

Выравнивание зависит от выравнивания самого выравненного члена, в случае строки - указатель

Вообще-то, оно не обязано зависеть от самого выровненного члена

Потому что внутри стринга указатель(и)

От пожелания компилятора

serfcity--fsanitize=undefined,address Автор вопроса
d7d1cd
Потому что внутри стринга указатель(и)

Это понятно, но там не 1 указатель, а десятки

다니엘(줄리아)
Вообще-то, оно не обязано зависеть от самого выров...

По стандарту без особых плясок с директивами - всë именно так. Ибо это является оптимальным для большинства платфори

다니엘(줄리아)
От пожелания компилятора

Блин, ну в подавляющем количестве случаев от выравнивания членов

serfcity -fsanitize=undefined,address
Это понятно, но там не 1 указатель, а десятки

Откуда десятки? Я могу максимум придумать три

serfcity -fsanitize=undefined,address
Это понятно, но там не 1 указатель, а десятки

Десятки? 😁 А чего не сотни? Во всех известных реализациях из либо 2 либо 1.

d7d1cd
Десятки? 😁 А чего не сотни? Во всех известных реал...

Один я ещё могу понять (cow), 3 - тоже, но 2 как?

Alexander Karaev
Один я ещё могу понять (cow), 3 - тоже, но 2 как?

как-нибудь дофига оптимизированно хранить информацию о SSO?

다니엘(줄리아)
как-нибудь дофига оптимизированно хранить информац...

Выдумать можно и полтора указателя, речь про существующие реализации

Alexander Karaev
Один я ещё могу понять (cow), 3 - тоже, но 2 как?

Эээ, указатель на начало строки и указатель на ее конец в буфере.

d7d1cd
Эээ, указатель на начало строки и указатель на ее ...

Хотелось бы посмотреть на реализацию, которая плюнула на capacity

Alexander Karaev
Хотелось бы посмотреть на реализацию, которая плюн...

Что это плюнула? Будет еще одно поле - capacity. Только оно будет не указатель, а просто size_t. А изначально речь шла именно про указатели и сколько их в классе строки.

d7d1cd
Что это плюнула? Будет еще одно поле - capacity. Т...

Насколько я помню, capacity хранят тоже в виде указателей. Было бы странно хранить size и capacity в разных формах. Перепроверю реализации попозже из любопытства

Alexander Karaev
Хотелось бы посмотреть на реализацию, которая плюн...

Символьный список можно в 16 байт уложить(можно в 8). Скорость работы будет феноменальная

Alexander Karaev
Хотелось бы посмотреть на реализацию, которая плюн...

при поддержке аллокатора можно доставать капасити оттуда и укладываться в 2 fbvector так умеет но к строке вряд ли применяется этот приём потому что уменьшение её размера это уменьшение процента SSO

Похожие вопросы

Обсуждают сегодня

А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
Подскажите, где смотреть результат выполнения программы? Код: ;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, станда...
Егор Анелькин
5
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, стандартный ;вызов процедуры ;option casemap:no...
Егор Анелькин
1
Так а кто может спарсить всех участников чата? Идишники
Magic
17
Есть вопрос: допустим есть железка с каким-то интерфейсом(допустим usb), но как по этому интерфейсу железкой управлять неизвестно, прог нету, а управлять очень хочется надо. К...
Mixail Frolov
15
а как ловят такое ghci> res <- getPos2 urlt 0 (alist !! 0) 200 ghci> res SearchAtom (Search "www.google.com" "/search?q=" "Haskell") "haskell.org" (SearchTS [(2024-05-06 07:...
Fedor
14
всем привет почти закончил курс После него можно писать свою операционку? Какие библиотеки надо использовать и куда дальше копать для изучения
Linus
13
Ребята, а из API геокодеров (по адресам в РФ) что сейчас актуального и есть ли среди актуального бесплатное/с нормаотным лимитом запросов? ситуация простая - на сайте периоди...
Dreamer_0x01 VeseloV
8
Карта сайта