|
16 / 18 / 2
Регистрация: 02.03.2024
Сообщений: 510
|
|||||||||||
Массив шаблонов30.03.2024, 16:40. Показов 4476. Ответов 79
Метки нет (Все метки)
Всем привет
я адинесник прошу не пинать ![]() захотелось как и в адинес добавлять в массив любые типы возникает вопрос можно ли создать или объявить как то массив [] с фиксированной длиной при инициализации указав все элементы но скажем так массив указателей на разные типы. ведь как я понял указатель то имеет одинаковую природу и величину - какая разница на что указывать. т.е хочу создать массив указателей на произвольные объекты, т.е. аналогично шаблон функции
можно ли создать такое типа auto arr[2] ={&s1, $s2}; Добавлено через 2 минуты неожиданно получилось вот так
0
|
|||||||||||
| 30.03.2024, 16:40 | |
|
Ответы с готовыми решениями:
79
Разреженный массив (с использованием шаблонов), исключение оператора посредством SFINAE Массив шаблонов или как обратиться к элементам разного типа, хранящиеся в одном "списке" по индексу Использование шаблонов |
|
"C with Classes"
|
|
| 07.04.2024, 10:30 | |
|
TheCalligrapher, то есть с точки зрения языка указатель это абстракция и в общем случае у этой абстракции нет свойства размер?
1
|
|
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
|
| 07.04.2024, 11:22 | |
|
_stanislav, здесь есть примеры: https://stackoverflow.com/a/66102654
Добавлено через 25 минут _stanislav, кстати вот здесь еще было обсуждение: double*p показать, что операция p++ передвигает указатель по памяти на определенное кол-во байт впарво Добавлено через 2 минуты Вот еще полезная ссылка для расширения кругозора: https://stackoverflow.com/ques... care-about
2
|
|
|
2689 / 1346 / 485
Регистрация: 08.11.2016
Сообщений: 3,734
|
||||||||||||
| 08.04.2024, 11:52 | ||||||||||||
1
|
||||||||||||
|
16 / 18 / 2
Регистрация: 02.03.2024
Сообщений: 510
|
||
| 08.04.2024, 18:55 [ТС] | ||
|
простыни из итераций. на мой взгляд достаточно сложный для понимания пример с reinterpret_cast. двумерные массивы и так занятная штука, как по мне. а вопрос разве если мы просто сделаем free (arr), где arr = int**arr - утечек памяти не образуется? нужно же отработать в цикле все указатели на вложенные массивы
0
|
||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|||
| 08.04.2024, 19:05 | |||
|
(int **) Я сомневаюсь что в 1С есть указатели... Хотя предмет не изучил, знаю лишь что это скриптовый ЯП а значит никаких указателей там не может быть, в априори. Вам действительно стоит посмотреть на ЯП пайтон.
1
|
|||
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
||
| 08.04.2024, 20:23 | ||
|
1
|
||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|
| 08.04.2024, 20:29 | |
|
DrOffset, тема из разряда :
1
|
|
|
16 / 18 / 2
Регистрация: 02.03.2024
Сообщений: 510
|
|||||||||||||||||||||||||||
| 08.04.2024, 22:39 [ТС] | |||||||||||||||||||||||||||
![]()
вот совершенно верно я тоже так и думал есть некие данные непрервынй кусок | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | что из них что я не знаю, но я знаю что читаются они слева направо, и например 5 элемент это указатель на класс Serial его объем я тоже знаю 40 байт, без проблем читаю 40 байт
почему нельзя сохранить указатели на объекты разных типов например в массив шаблонов и потом их просто прочитать. к примеру передаю я по радио каналу структуру , или класс, я же так и передаю её
вот кстати радио передача два разных устройства во многих библиотеках к радио модулям естб функции принимают указатель на начало и размер байт. байт он везде байт я чет запутался. Добавлено через 10 минут т.е. получается можно привести указатели на разные объекты к вообще любому типу с помощью
и собственно создать массив таких переделанных указателей из разных типов, но переделать их например в int* и жить себе не тужить? сейчас попробую. если это сработает - то спасибо,ларчик -то просто открывался
0
|
|||||||||||||||||||||||||||
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
|||
| 08.04.2024, 22:44 | |||
|
Нельзя игнорировать требования выравнивания к разным типам. Нельзя игнорировать понятие времени жизни объекта. Не любой объект можно вот так запросто представить сырой памятью.
0
|
|||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|
| 08.04.2024, 22:45 | |
|
pup_kin, перестаньтье писать длинные посты ни о чем, что не кассается темы.
Нет конечно, ваш пример ни очем. Все можно привести к void*, ах да не все. Ну это же вам неведомо. А потом вернуть назад тип вы уже не сможете, или нужно передавт список типов, что и делается с помощью stdLLtuple Теперь идем дальше, по вашему, что вы можете типы чередовать и тд и тп, нет не сможете, вам также придется передавать метаинформацию. Ну вобщем у вас беда с восприятием строготипизированного ЯП
1
|
|
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
||
| 08.04.2024, 22:49 | ||
|
Еще приводили std::variant - это тоже оно, но с другого краю. Хотите свое такое и чтобы было правильно? Надо изучить как оно там реализовано внутри, и поймете если, значит и свое сможете сделать. В противном случае это просто будет хождение по граблям.
1
|
||
|
16 / 18 / 2
Регистрация: 02.03.2024
Сообщений: 510
|
|||
| 08.04.2024, 22:59 [ТС] | |||
|
конечно же
объект - это сущность динамическая, зачастую. просто к примеру у меня есть рабочий код по радиообмену. на модулях NRF2401 и любых других аналогичных. передача данных там осуществляется передается начало и размер. и прием осуществляется указатель на начало переменной и размер в байтах. и нормально передаются структуры, строки, числа, все - не динамическое скажем так. ясное дело объект который был инициализирован и более того выполнил какие-то операции в физическом мире нельзя просто так взять и передать или интерпретировать на другой машине. НО иногда, как я понял - можно ![]() Добавлено через 3 минуты но хочется просто работать с байтами не завязываясь на сторонние библиотеки. спасибо огромное Annemeski за то, что напомнили о приведении типов. мухи указатели отдельно , данные/данные отдельно.
0
|
|||
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
||
| 08.04.2024, 23:07 | ||
|
Во-вторых, я вам предложил изучить их внутреннее устройство, чтобы не ходить по граблям, а не юзать их непосредственно. Пожалуйста читайте внимательнее. В третьих вы все-таки бежите впереди паровоза. Можете бежать и дальше, я не отговариваю, но просто помните: все, что вы сейчас наваяете, будет неверно процентов на 98 (даже если оно будет работать)
1
|
||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|
| 08.04.2024, 23:16 | |
|
DrOffset, не, ну можно свои типы напридумывать ))
1
|
|
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
||
| 08.04.2024, 23:22 | ||
|
1
|
||
|
16 / 18 / 2
Регистрация: 02.03.2024
Сообщений: 510
|
||
| 08.04.2024, 23:24 [ТС] | ||
|
в ардуино нет stl. есть какие -то решения на эту тему, но они достаточно корявы и проще самому написать. собственно об этом и речь
0
|
||
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
||
| 08.04.2024, 23:27 | ||
|
1
|
||
|
16 / 18 / 2
Регистрация: 02.03.2024
Сообщений: 510
|
||
| 08.04.2024, 23:29 [ТС] | ||
|
делаю массив с размером загодя и в него загоняю все что нужно, и сам разбираю как уж смогу. это примерно то что и нужно. и достаточно объемлюще. т.е. мне нужен кусок памяти от НАЧАЛА и до КОНЦА весь мой.что хочу туда то и пишу, сам занимаясь разметкой. если кому плюсики забыл - кончились - завтра протыкаю
0
|
||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|
| 08.04.2024, 23:37 | |
|
0
|
|
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
||||||||
| 08.04.2024, 23:39 | ||||||||
|
Если с этими данными будет идти работа в памяти, то нужно обеспечить им верное выравнивание, либо читать каждый кусочек данных туда, где это это требование уже обеспечено. Вот пример
0
|
||||||||
| 08.04.2024, 23:39 | |
|
запрет шаблонов С++ использование шаблонов Реализация шаблонов Функции-шаблонов Специализация шаблонов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Установка нескольких штампов электронной подписи в строго определенных местах файла docx
ВладимирСамохин 19.07.2026
(В!) Работа с Электронной подписью - это неотъемлемая часть современного документооборота. Но что делать, если нужно поставить несколько штампов электронной подписи в строго определенных местах. . .
|
сукцессия 35. Научная статья о проделанной работе
anaschu 19.07.2026
Написал в формате латекс и пдф
|
Вангую, что это не пройдёт модерацию, и на неделе я запущу свой сервер.
Hrethgir 19.07.2026
Эта публикация сейчас в песочнице и ждёт приглашения.
https:/ / habr. com/ ru/ sandbox/ 295048/
По ссылке 403. Не очень информативно такую ссылку постить.
Запись от Usaga размещена Сегодня в 06:46 . . .
|
сукцессия 33. открытые вопросы от клауде
anaschu 19.07.2026
"Что накопилось за эту часть А — тринадцать правок, из которых шесть пришли из ваших вопросов и каждая оказалась реальной ошибкой, а не калибровкой: односторонний симбиоз, отсутствующий листопад,. . .
|
|
32 сукцессия
anaschu 19.07.2026
сукцессия 28‑мерное ядро стабилизировано
Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не «подкручивает» сходимость —. . .
|
сукцессия 31: модель микоризы - это модель ещё нескольких явлений, социальных и экономических
anaschu 18.07.2026
Теория «Всего»: апдейт v1. 1. 2 — 28‑мерное ядро стабилизировано
Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не. . .
|
сукцессия 30. Массив проверяющих друг друга моделей
anaschu 18.07.2026
Архитектура сети взаимопроверяющих моделей микоризной сукцессии (v2. 0)
Развитие тензорного ОДУ-ядра и создание кросс-платформенного калибровочного полигона
Уважаемые коллеги!
В продолжение. . .
|
Грибы - это женщины, деревья - это мужчины. Анти инь янь для союза мужчины и женщины.
anaschu 18.07.2026
ГЛАВНЫЙ НАУЧНО-ФИЛОСОФСКИЙ ВЫВОД: Сексуально-Репродуктивный Капитализм против Государства Моногамии
Коллеги, мы вышли на финишную прямую 20-мерного ОДУ-моделирования вековой сукцессии (ветка. . .
|