Anonymous
Но ссылаться на отдельные элементы сечения массива нельзя
Anonymous
Благодарю
Egor
В C++ есть реализация сечения массивов, как в Фортране?
Есть гугловый absl::span, сделан по аналогии со string_view: https://github.com/abseil/abseil-cpp/blob/master/absl/types/span.h#L20 . Опять же, хз как в Фортране, но это легковесный объект (пара указателей), не владеющий данными. А в остальном работает плюс-минус как обычный vector.
Aidar
Все кажется забыли про valarray
🐙 Antony
@antoshkka по поводу строк вопрос возник. Проще спросить, чем разбираться. Можно ли с помощью трейтов как-то взаимодействовать содержимым string<>? Например, я хочу сделать такую штуку как атомы в эрланге. Пусть у меня где-то есть большая таблица в памяти, где хранятся все различные текстовые строки. Я могу там регистрировать новые строки в любой момент, с учетом того, что берусь сам следить за утечками. Хочу, чтобы каждый объект string<> вместо непосредственно буфера символов хранил указатель на нужную запись в таблице. Если мы записываем строку, которой там еще нет - то регистрируем ее. В таком случае, сравнение двух объектов строк на равенство будет равносильно сравнению указателей на запись таблицы, например.
Проще написать с нуля обёртки над string_view НО сомневаюсь что получится хорошо: my_string s0 = "Hi there"; my_string s1 = "Not there"; assert(s0.substr(3) == s1.substr(4)); // Hm... hard case, simple pointer comparisons won't help here
Anonymous
Все кажется забыли про valarray
Мне бы поменьше мороки с синтаксисом
Anonymous
Чтобы реализация какого-либо массива была в одну строчку, а не в 4
Anonymous
Anonymous
В фортране, например, задаётся массив: T = 'CPLUSPLUS' T(1:2:6) Вывод: CPP
Anonymous
И всё
🦥Alex Fails
Если библиотека header-only, то это к чему относится?
делаешь либу с внешними экспортами, и профит
Aidar
valarray<char> va("CPLUSPLUS",9); va[slice(0,2,3)] // CUL
Aidar
.sum()
Aidar
Если что
Vladislav
То, что искал. Грац
Он только одномерный
Aidar
http://en.cppreference.com/w/cpp/numeric/valarray/indirect_array
Aidar
Он только одномерный
gslice костылит многомерку
FailsBot
/help@FailsBot
USAGE: /help - prints this message; /vzhuh [message] - do vzhuh; /start - info about bot.
FailsBot
Search results for "std::slice" 1. std::slice 2. std::gslice 3. std::list::splice 4. std::pmr::list::splice
ep
Вот многомерные и срезы есть https://xtensor.readthedocs.io/en/latest/view.html#sliced-views
🐙 Antony
Matwey
Ок. Интересно будет посмотреть, что получится
Так из описания уже понятно, что получиться тут может только пятикрылый крокодил
Berkus
мало того, он лучше тебя умеет переиспользовать, благо liveness analysis там на высоте
Berkus
а в SSA форме вообще всегда новые переменные создаются - и ничего, справляется как то
Vladislav
умеет конечно
ну вдруг у них в этом вашем эмбедде особо тупые компиляторы
Berkus
ну вообще да, там же гцц
Vladimir
Но нет
Vladislav
удваиваю
Vitaliy ◀️TriΔng3l▶️
Еее
Vitaliy ◀️TriΔng3l▶️
Сделал в одном месте через класс со статическими методами (так почище), во втором — через curiously recurring template pattern
Vitaliy ◀️TriΔng3l▶️
Наговнокодил так наговнокодил
Vitaliy ◀️TriΔng3l▶️
Первое — это хеш-таблица со строковым ключом, в одном случае он регистрозависимый, в другом — нет
Vitaliy ◀️TriΔng3l▶️
Второе — small_vector
Ender
Недавно же совсем публиковали, типа декапсуляция заебись
Ender
https://m.habrahabr.ru/post/264063/
Ender
А там уже и экономия на спичках свою роль норм отыграет.
Ender
Так что мяу.
Alexander
Недавно же совсем публиковали, типа декапсуляция заебись
дык это о динамической памяти, а выше базар был за recylcing переменных в скоупе одной функции вроде бы
Ender
Внутри одной функции всё само собой заресайклится.
Alexander
Внутри одной функции всё само собой заресайклится.
ну выше был поинт, что компиляторы для встроенных систем могут не отличаться особой сообразительностью и не делать этого автоматически)
Ender
Ну какие-то могут и не отличаться.
Ender
Ну по крайней мере микрочиповский и атмеловский компиляторы достаточно сообразительные, тот же гцц тоже. Что там ещё для встраиваемых систем используется. Гцц тоже сообразительный, однако мне он не очень нравится, но для вхворкс я другой альтернативы не знаю, не пытался узнать даже.
Ender
Мяу
Alexander
я тож хз, я рассуждаю просто из того, что есть, сам никогда для микроконтроллеров ничего не писал
Ender
Это весело. Попробуй.
Ender
Напиши драйвер клавиатуры.
Ender
Когда у тебя от короткого нажатия на кнопку на дисплее пробегают несколько тысяч её значений, сразу задумываешься кокой ты погроммист.
Ender
Попробовать можно в Proteus VSM.
Ender
По-моему так пишется.
Alexander
😄
Alexander
мне пока моих фулстеков хватает в котороых тоже порой черт ногу сломит)
Ender
Мой преподаватель помню СЛЁЗНО у декана выпрашивал лицензию на него. А чувак прикольный, и пишет весело. Жмакин Анатолий Петрович.
Ioann_
Так, собсно вот вопросец
Ioann_
Интересно, а на опциях о фаст, компилятор нормально понимает, что для POD типов не нужно вызывать деструктор или все же вызывает ?
Ioann_
Именно вопрос того, как компилятор понимает сие чудо, может кто-то сталкивался ?
Ioann_
Особенно, когда говорим о контейнерах
Ioann_
alloc->destroy
Ioann_
Я говорю про случаи использования alloc->destroy
Ioann_
В контейнерах, а так же про trivially destructble объектах
Ioann_
какой такой деструктор для POD типов? ЧТО?
Так вопрос не в том генерируется ли деструктор и так далее, а в том как хорошо эту ситуацию ловят компиляторы.
Berkus
у POD типов нет деструкторов, так что и компиляторам нет смысла беспокоиться
ovf
я, конечно, зря снова сюда лезу, но, может, для дискуссии будет полезно, если ты приведёшь пример гипотетического вывода хорошо и плохо ловящих ситуацию компиляторов
Ioann_
Если бы оные были бы в моем случае, я бы вопрос не задавал. Т.к мало ли, хотя и мало вероятно - какие то вызовы к destroy и так далее генерируются. Но скорее всего да, не генерируются вовсе.
RAwesoMeat
Ребят, побуду сегодня ридонли, дико раздраконился работой. Спатьки надо бы. Не возбраняется у вас молчаливость после вступления?
vladislav
я вот несколько недель молчал и ещё несколько помолчу, кайфово
Vladislav
Berkus
получить письменное ридонли
Billy
(rofl)
RAwesoMeat
😊 по факсу (шутка)?
RAwesoMeat
Не, я писать буду рад и общаться на разные темы
RAwesoMeat
прост сейчас мозг уже слабо соображает, как бы я его не пытался заставить думать