Здравствуйте, Bell, Вы писали:
B>Здравствуйте, Аноним, Вы писали:
А>>Как вариант можно хранить в my_comparator ссылку на bigObj:
А>>А>>class my_comparator {
А>>public:
А>> my_comparator( const Big& _bigObj ) : bigObj (_bigObj)
А>> {
А>> }
А>>private:
А>> Big& bigObj;
А>>
А>>Но что-то мне подсказывает, что это плохой вариант...
B>А что именно подсказывает? Мне вот например такой подход не кажется чем-то неправильным
Ну меня смущают такие сценарии
1.
my_comparator cmp1 (bigObj1);
my_comparator cmp2 (bigObj2);
cmp1 = cmp2; // Побочный эффект bigObj1 = bigObj2 ? Это нормально?
А если хранить константную ссылку, то я не смогу сделать оператор присваивания. Или STL не требует, чтобы функторы можно было присваивать?
2.
Big *pBigObj = new Big;
my_comparator cmp (*pBigObj);
delete pBigObj;
std::sort(v.begin(), v.end(), cmp );
Конечно не бог весть какой сценарий, но все же реализуемый...