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
Aidar
Anonymous
Чтобы реализация какого-либо массива была в одну строчку, а не в 4
Anonymous
Anonymous
В фортране, например, задаётся массив: T = 'CPLUSPLUS'
T(1:2:6)
Вывод: CPP
Anonymous
И всё
🦥Alex Fails
🦥Alex Fails
Matwey
Aidar
valarray<char> va("CPLUSPLUS",9);
va[slice(0,2,3)] // CUL
Anonymous
Aidar
Aidar
.sum()
Aidar
Aidar
Если что
Aidar
http://en.cppreference.com/w/cpp/numeric/valarray/indirect_array
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
Berkus
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
Так что мяу.
Ender
Внутри одной функции всё само собой заресайклится.
Ender
Ну какие-то могут и не отличаться.
Ender
Ну по крайней мере микрочиповский и атмеловский компиляторы достаточно сообразительные, тот же гцц тоже. Что там ещё для встраиваемых систем используется. Гцц тоже сообразительный, однако мне он не очень нравится, но для вхворкс я другой альтернативы не знаю, не пытался узнать даже.
Ender
Мяу
Alexander
я тож хз, я рассуждаю просто из того, что есть, сам никогда для микроконтроллеров ничего не писал
Ender
Это весело. Попробуй.
Ender
Напиши драйвер клавиатуры.
Ender
Когда у тебя от короткого нажатия на кнопку на дисплее пробегают несколько тысяч её значений, сразу задумываешься кокой ты погроммист.
Ender
Попробовать можно в Proteus VSM.
Ender
По-моему так пишется.
Alexander
😄
Alexander
мне пока моих фулстеков хватает в котороых тоже порой черт ногу сломит)
Ender
Мой преподаватель помню СЛЁЗНО у декана выпрашивал лицензию на него. А чувак прикольный, и пишет весело. Жмакин Анатолий Петрович.
Ioann_
Так, собсно вот вопросец
Ioann_
Интересно, а на опциях о фаст, компилятор нормально понимает, что для POD типов не нужно вызывать деструктор или все же вызывает ?
Ioann_
Именно вопрос того, как компилятор понимает сие чудо, может кто-то сталкивался ?
Ioann_
Особенно, когда говорим о контейнерах
Ioann_
alloc->destroy
Berkus
Vladislav
Ioann_
Я говорю про случаи использования alloc->destroy
Ioann_
В контейнерах, а так же про trivially destructble объектах
Berkus
у POD типов нет деструкторов, так что и компиляторам нет смысла беспокоиться
ovf
я, конечно, зря снова сюда лезу, но, может, для дискуссии будет полезно, если ты приведёшь пример гипотетического вывода хорошо и плохо ловящих ситуацию компиляторов
Ioann_
Если бы оные были бы в моем случае, я бы вопрос не задавал. Т.к мало ли, хотя и мало вероятно - какие то вызовы к destroy и так далее генерируются. Но скорее всего да, не генерируются вовсе.
RAwesoMeat
Ребят, побуду сегодня ридонли, дико раздраконился работой. Спатьки надо бы. Не возбраняется у вас молчаливость после вступления?
vladislav
я вот несколько недель молчал и ещё несколько помолчу, кайфово
Vladislav
Berkus
получить письменное ридонли
Billy
(rofl)
RAwesoMeat
😊 по факсу (шутка)?
RAwesoMeat
Не, я писать буду рад и общаться на разные темы
RAwesoMeat
прост сейчас мозг уже слабо соображает, как бы я его не пытался заставить думать