K5EngineФорум

Обновление движка и новая статья (комментарии)

#0
23:42, 26 июля 2010

Обновление движка и новая статья (комментарии)

Это сообщение сгенерировано автоматически.

#1
23:42, 26 июля 2010

вместо кучи функций с разными параметрами удобнее был бы 1 темплейт такого типа

template<class Cons>
int Get( SomeList& list, Cons& cons )
{
  for ( all objects )
  {
    if (cons(object) )
    {
       list.push(object);
    }
  }
}

// применение
class SomeObject
{
  int id;
public:
  SomeObject( int i ) : id(i) {}
  bool operator(TObject* obj )
  {
    return obj->GetId() == id;
  }
}

SomeObject some;
SomeList list;
int i = Get( list, some );
if ( i > 0 )
{
  list[i]->DoSomething();
}

в принципе функция Get может быть устроена по другому, но я думаю основная суть понятна...

#2
1:38, 27 июля 2010

Pushkoff
По сути да. Мысль ясна.
Тут надо бы подумать, так как сейчас подобные инструментальные функции реализованы как члены классов, которые их используют. При том вообще это как одно из архитектурных решений работает: единой написание интерфейсов у объектов движка.

K5EngineФорум

Тема в архиве.