|
16 / 18 / 2
Регистрация: 02.03.2024
Сообщений: 510
|
|||||||||||
Массив шаблонов30.03.2024, 16:40. Показов 4473. Ответов 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 | |
|
запрет шаблонов С++ использование шаблонов Реализация шаблонов Функции-шаблонов Специализация шаблонов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия 30. Фосфорный и азотный замки по "честному" закону лимитирования Либиха
anaschu 16.07.2026
Основные достижения за последние дни
1. Механизм отложенного высвобождения фосфора
Добавлен специальный пул для медленного разложения меланизированных гиф ЕСМ
Реализована разная скорость. . .
|
Запрет пометки на удаление и отмены проведения
Maks 16.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "ПутевойЛист" разработанного в КА2.
Задача: запретить помечать на удаление и отменять проведения путевого листа при условии, если он сдан. . .
|
Как надо было делать правильно - вообще не слушать ИИ, его дело - текст.
Hrethgir 15.07.2026
А вообще надо было делать не так, чтобы не исправлять ошибку https:/ / www. cyberforum. ru/ blogs/ 223907/ 10996. html , правильно было : удалил кнопку, а потом добавил её.
Всё это стресс конечно. Почему?. . .
|
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот.
Ларри Уингет
|
|
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
|
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров
В текущей версии модели успешно реализован ключевой механизм. . .
|
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям
Реализованные компоненты:
Механизм закисления почвы через протонную помпу
Конкуренция между типами микориз
pH как триггер сукцессии
C/ P соотношение. . .
|
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
|