170 похожих чатов

Подскажите, пожалуйста, как правильно определить оператор для Component, чтобы указатели

в std::multiset сортировались в соответствии с draw_order_ (чем меньше, там приоритетней компонент)?
class Component
{
public:
Component(class Entity* owner, int order = 100)
: owner_(owner)
, draw_order_(order)
{}

bool operator<(const Component& rhs)
{
return (draw_order_ < rhs.draw_order_);
}

private:
class Entity* owner_;
int draw_order_;
};

class SpriteComponent
: public Component
{
public:
SpriteComponent(class Entity* owner, int order)
: Component(owner, order)
, sprite_(nullptr)
{}

private:
class Sprite* sprite_; // SFML class sf::Sprite
};

class Game
{
// other implementation
private:
std::multiset<SpriteComponent*> sprites_;
};

2 ответов

7 просмотров

надо определить функтор: struct ComponentPtrLess { bool operator=(const Component* a, const Component* b) const { return *a < *b; } }; и его в качестве less передать в шаблон multiset.

Надо operator< определить в SpriteComponent или сделать свободной функцией

Похожие вопросы

Обсуждают сегодня

Типа вызывать GetParent и проверять на соответствие GetModuleHandle?
The Bird of Hermes
67
Do any of you guys have interesting projects one could join? I'm a Middle Full-Stack developer (JS/TS, React & Node)
Lev Shapiro
40
$res = json_decode($наша строка из респонса); $res1 = array_map(fn($o) => $o->name, $res->breadcrumbs[0]->entities); Как такое будет на Хаскеле?.. В начале весь джейсон, в ко...
Хаскель Моисеевич Гопник
27
В чем сила брат, в NASM или FASM?
Isaac Kleiner
18
Вопрос по диагностике ошибок (я знаю в чем, в данном конкретном примере, я знаю, как исправить, пример модельный, понятно, что в реальности бывает намного запутаннее). module...
ⰄⰎⰋⰐⰐⰑⰛⰤⰧⰧⰩⰄ ⰊⰑⰁⰓⰡⰛⰦⰕⰫ
11
Хтось використовував Vapor на Windows?
Jaroshevskii
15
А чем вам питонисты не угодили?😂
.
79
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
52
Тут кста кто-нибудь NeoVim использует?
Simple Sorcerer
13
Оба варианта в целом подходят, но скорее создание конфликтной ситуации (на пустой основе). В прошлый раз он сказал мне про ESP32, я забыл про этот микроконтроллер, ошибся, я п...
КТ315
4
Карта сайта