Max
ну это не то
Исходя из вопроса о фиксированном обьеме это как раз то
Александр
фиксированный capacity, динамический size.
Александр
Крылатый
Александр
Max
Александр
короче. мне нужен std::vector с аллокатором, который аллоцирует на стеке до N байт, иначе - в куче. и желательно аналогично для set, map и прочих контейнеров
Крылатый
size() там компилтаймовый.
Крылатый
Есть max_size, который говорит о максимальной вместимости в зависисомсти от реализации.
Александр
но так как это невозможно реализовать на аллокаторах со стандартными контейнерами, то нужны какие-то другие решения, типа boost::small_vector
Крылатый
Т.е. ограничения конкретной реализации
Крылатый
Александр
хорошо, не совсем корректно изначально написал, каюсь
Крылатый
Alexander "SonnySlave"
Александр
поискал small_map/small_set - не нашёл
Александр
flat_map нашёл, но это вроде бы не то
Крылатый
http://www.boost.org/doc/libs/1_60_0/doc/html/boost/container/small_vector.html
Александр
да small_vector-то я нашёл
Александр
впрочем, есть подозрение, что map/set на небольших объемах будут тупо медленнее vector'а с линейным поиском по нему
Alexander "SonnySlave"
Alexander "SonnySlave"
Alexander "SonnySlave"
Torteek
Всем здравствуйте. Хочу обратиться с правильным вопросом сборки OpenCV под Win. Нужно собрать для компилятора GCC (у меня это порт MinGW64). Делаю по статье на хабре https://habrahabr.ru/post/318846/ . Как я понимаю, весь описанный процесс соберет релиз для производства 32битных проектов.
Как мне сделать для 64 битных под Windows? Вариант скачать бинарники под винду не работает - они для MS VS. Спасибо
Alexander "SonnySlave"
А как тогда гарантировать, что там будет sso?
Alexander "SonnySlave"
Могут и забить на это
Alexander "SonnySlave"
В той же крипте числа пожирнее будут
Vsevolod
нет, так нельзя
🐙 Antony
Vsevolod
для размеров в платформе есть std::size_t, и баста
Vsevolod
остальное от лукавого
Billy
Matway
🐙 Antony
Жуть
Matway
А можно в числовом эквиваленте «существенный» выразить? ;)
Запишу себе как-нибудь забацать статейку. На конкретной задаче (компилятор) там был выигрыш по памяти в десятки процентов (много-много маленьких векторов). Другое дело, что в 21 веке, когда люди даже на Питоне писать не брезгуют, для оптимизации контейнеров нужна сильная мотивация.
Matway
Есть распространённое заблуждение, что на 64-битной платформе 64-битные инты не дороже, чем 32-битные. Но это не так.
username
Всем привет.
Снова дурацкий вопрос, не получается указать версию, с которой слинковать приложение.
На ubuntu, сначала скомпилил Boost версии 1.60, потом поставил из пакетов 1.58... и при компиляции почему-то он линкуется с 1.60. Как правильно в cmake указать, что бы использовался 1.58?
Кирилл
username
спасибо)
Max
Почему первый вариант метода get() работает, а второй дает ошибку компиляции?
1. https://ideone.com/OzKEtR
2. https://ideone.com/pHFIKP
Александр
Max
Billy
Max
Это ж синглтон
MT Radio
MT Radio
всем привет
MT Radio
MT Radio
гет вернет вполне себе указатель, который по-честному сам по себе является временным и умрет при выходе из функции
MT Radio
и именно на этот временный указатель мы делаем ссылку
MT Radio
но я не запускал, и что там компилятор говорит не видел
Max
Pavel
куда вам столько синглтонов?
Pavel
или это просто такое излюбленное упражнение по заталкиванию всё в шаблоны?
Max
MT Radio
угу, разименовывается временно существующий указатель.
MT Radio
есть линк на стандарт, гарантирующий такое поведение? я вот такого не помню
MT Radio
можно надеяться, что реализация компилятора будет достаточно умна, но если вдруг у тебя есть линк на стандарт — просто будет оч круто
Max
Ну из-за make_shared
Александр
MT Radio
Max
никак
Переписать и не ибаццо с шаблонами?
Александр
Александр
вообще странно, что std не предоставляет какого-нибудь класса shared_creator, которому можно прописать friend class shared_creator
Max
Max
Тогда просто создать через new и все?
Alexander "SonnySlave"
всё равно я придерживаюсь мнения, что нужно давать пользователю возможность выбирать размер буфера на стеке
Alexander "SonnySlave"
только вот не совсем понятно, что делать в случае: число стало больше буфера на стеке, аллоцируем память на куче. Потом число уменьшилось и снова вмещается на стек. и что - обратно будем копировать на стек уже?
Max
Так оно так и работат, но хочу сменить без статик переменной, т.к. с ней тесты не напишешь, потому что мне нужно на тест удалять и создавать его по своему
Alexander "SonnySlave"
а если у нас кейсы что постоянно на грани, то постоянно прыгать туда-сюда не хочется
Alexander "SonnySlave"
если SSO, то такие прыжки могут иметь место и их не исправить так просто. Если указываем размер, то просто меняем размер буфера на стеке