Re[3]: Как хранить внешний объект в функторе?
От: Stanislav V. Zudin Россия  
Дата: 18.10.10 12:25
Оценка:
Здравствуйте, sheglov.nik, Вы писали:

B>>А что именно подсказывает? Мне вот например такой подход не кажется чем-то неправильным


SN>Ну меня смущают такие сценарии

SN>1.

SN>
SN>my_comparator cmp1 (bigObj1);
SN>my_comparator cmp2 (bigObj2);
SN>cmp1 = cmp2; // Побочный эффект bigObj1 = bigObj2 ? Это нормально?
SN>


И много ты компараторов присваиваешь?

Обычный сценарий:

std::sort(m_nets.begin(), m_nets.end(), FufelNetComparator(db.nets()));

Где "db" — большой-пребольшой объект, у которого есть объект EditorNet. Тоже очень большой.

А выше по коду

   class FufelNetComparator
   {
   public:
      FufelNetComparator(const fsed::EditorNet& nets) : m_net(nets){}
      bool operator()(const SAMPLE& n1, const SAMPLE& n2) const
      {
         return fsstr::RefDesCompare( m_net.NameNet(n1.second), m_net.NameNet(n2.second)) < 0;
      }
   private:
      const fsed::EditorNet& m_net;
   };
_____________________
С уважением,
Stanislav V. Zudin
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.