а вот если хочется чего-то очень компактного и легкого (желательно не больше одного хидера на контейнер, или даже хардкодно заинклудить в собственные исходники). От C++11 и выше хотя бы, чтобы move-семантика была..
C Template Library они чисто на хедерах
похоже на XY проблему. тебе зачем такое понадобилось?
https://github.com/glouw/ctl
о, сишную дрянь тянут в це кресты чат
я тебя расстрою, но вопрос не имеет смысла без конкретизации целей
Прямо вот сейчас потребовался std::vector с small-object-optimization, но задумался, что я уже не в первом проекте подобный контейнер быдлокодю, так что стоило бы изучить что же такого более умные люди придумали уже готового, а оно не гуглится (so вообще советует std::basic_string<my_non_pod>)..
так требование то какое? я так и не понял :) контейнеры в отдельных хедераз или контейнеры с small object optimization?
ну что ты как маленький? ну вот контейнер, чтобы был хороший пушистый и весь из себя маленький, но обязательно такой вот, чтобы нравился
"Проблемы понимания впервые были подняты в философии неокантианства (Г. Риккерт[2]). Понимание как метод гуманитарных наук было противопоставлено объяснению как методу естественных наук. В современной философии понимание исследует герменевтика." "Понимание — это компонент мышления, один из образующих его процессов. Понимание обеспечивает установление связи раскрываемых новых свойств объекта познания с уже известными субъекту, формирование операционального смысла новых свойств объекта и определение их места и роли в структуре мыслительной деятельности." :)
ну чел спросил же про контейнеры без стл и буста
так а си тут при чём?
плюсы наследуют си, почти любой сишный код прикручивается
ты аккуратнее, а то мы так быстро дойдем до того, что контейнеры через сишный интерфейс прикручивать будем и онтопиком считать. не надо так
спасибо за историческую справку
Прямо сейчас задача такая: знаю, что в 99% случаев будет не больше N объектов, и вот хочу эти N объектов хранить на стэке, чтобы лишние аллокации каждый вызов функции с этим контейнером не делать (а если окажется что будет больше N, то я готов смириться с одной лишней аллокацией на 2N). То есть, нужен std:;vector с soo. Загуглил SmallVector, но может здесь посоветуют что-то более идеологически правильное. Но на будущее, хотелось бы, что бы оно было одним хидером и без зависимостей (кроме STL, разумеется), чтобы между проектами таскать...
static_vector еще релевантное название
хм, прям чтобы отдельной либой такого я не помню. можешь попробовать выкорчевать из folly или из LLVM. там такие классы точно были. Я правда не понимаю особо, зачем такое надо. Как вариант, можешь выкорчевать из Boost с помощью Boost.BCP.
Хорошо. Это примерно то, чего я ожидал. Спасибо (теперь без сарказма).
В etl такой вектор есть
Спасибо, посмотрю. А ещё меня эта etl навела на одну интересную мысль: использовать обычный std::vector, но с кастомным аллокатором, который будет сначала брать из фиксированного массива, а потом вызывать обычные new/delet (как раз недавно читал про подобное).
Какие подводные для такого способа реализовать static_vector/SmallVector через std::pmr::monotonic_buffer_resource? Кроме потребности в C++17.
Не поверишь, это STD!
Да, но изначально я не думал про кастомные аллокаторы для std::vector, и был уверен, что мне нужен какой-то особый контейнер.
Кто такой контейнер
Обсуждают сегодня