Войти
ФлеймФорумПрограммирование

Умная выборка параметров из struct. Как реализовать ?

Страницы: 1 2 3 4 5 Следующая »
#0
(Правка: 18:13) 17:11, 17 мая 2020

Идея сделать такое.
Не важно язык программирования какой.

struct a {
x float;
y float;
i int;
pBuffer *void;
SizeBytes int;
}

struct b {
pBuffer *void;
SizeBytes int;
i int;
}

Подаем любую структуру а или b функции Fun1 и она должна при постпроцессинге определить нужные поля из структур. Fun1(a); или Fun1(b);
А именно pBuffer и SizeBytes
И если структура содержит pBuffer и SizeBytes то будет в коде Fun1 иначе не будет её в коде.

Допустим Fun1 должна делать типа pBuffer = memalloc(SizeBytes) ;


#1
17:14, 17 мая 2020

прочитай про шаблоны

#2
(Правка: 17:45) 17:15, 17 мая 2020

Еще один вид ужасов с++.

#3
(Правка: 17:18) 17:17, 17 мая 2020

Я хотел сделать тип умный маркер. По которому сразу ясно.
Например AIdat@alloc

struct b {
pBuffer AIdat@alloc;
SizeBytes int;
i int;
}

#4
17:27, 17 мая 2020

ronniko
Программирование работает так: Вы знаете, что и как надо сделать и объясняете это тупому компьютеру.
А не наоборот.

#5
17:34, 17 мая 2020

ronniko
> Подаем любую структуру а или b функции Fun1 и она должна при постпроцессинге
> определить нужные поля из структур.

Зачем? Какая конечная цель? Что ты этим хочешь достичь, в итоге? Зачем тебе мемаллок? Ты диспетчер кучи пишешь или что? Сырые указатели, без веской на то причины никто уже лет 10 не использует. А тем, кто пытается, тому нужно положить пальцы на клавиши рояля и крышкой ХРЯСЬ!, для выпрямления.

#6
17:46, 17 мая 2020

gudleifr
Удивил :)))
Вот это поворот !

#7
(Правка: 18:49) 18:49, 17 мая 2020

ronniko
> Подаем любую структуру а или b функции Fun1 и она должна при постпроцессинге
> определить нужные поля из структур. Fun1(a); или Fun1(b);
> А именно pBuffer и SizeBytes
> И если структура содержит pBuffer и SizeBytes то будет в коде Fun1 иначе не
> будет её в коде.
В Ü есть конструкция typeinfo, позволяющая во время компиляции инспектировать типы, проходить по полям и т. д.

#8
19:12, 17 мая 2020

В чем проблема-то? Унаследуй структуры от общего предка, указатель на предка и передавай в Fun1

#9
19:23, 17 мая 2020
Унаследуй структуры от общего предка

Не всегда удобно и возможно сделать.
#10
19:42, 17 мая 2020

ronniko

function fun1(object) {
  if (`pBuffer` in object && `SizeBytes` in object) {
    object.pBuffer = memalloc(object.SizeBytes);
  }
}
#11
19:42, 17 мая 2020

Тогда унаследуй от одного интерфейса(абстрактного класса без полей), у структур реализуй требуемые геттеры и сеттеры.

#12
21:04, 17 мая 2020
function func(obj)
{
  if (obj.rawin("SizeBytes") && obj.rawin("pBuffer"))
  {
    obj.pBuffer = blob(obj.SizeBytes);
  }
}
#13
21:28, 17 мая 2020
nes
А при чем здесь раввины?
#14
21:38, 17 мая 2020
function fun1(object) {
  if (`pBuffer` in object && `SizeBytes` in object) {
    object.pBuffer = memalloc(object.SizeBytes);
  }
}
Уже похоже на то что я хочу.
Страницы: 1 2 3 4 5 Следующая »
ФлеймФорумПрограммирование