diff -r 37d3c819cafa -r 2837b549e616 src/model.h --- a/src/model.h Wed Jun 22 16:13:15 2022 +0300 +++ b/src/model.h Wed Jun 22 16:53:35 2022 +0300 @@ -198,7 +198,7 @@ constexpr auto operator<=>(const ModelId& other) const = default; }; -constexpr int qHash(ModelId id) +constexpr unsigned int qHash(ModelId id) { return qHash(id.value); } @@ -211,25 +211,25 @@ ModelId id; }; std::vector body; - std::map positions; + std::map positions; ModelId runningId = {1}; public: Model(QObject* parent); virtual ~Model(); ModelId append(const ModelElement& value); - const ModelElement& at(int position) const; - ModelId idAt(int position) const; - void assignAt(int position, const ModelElement& element); + const ModelElement& at(std::size_t position) const; + ModelId idAt(std::size_t position) const; + void assignAt(std::size_t position, const ModelElement& element); std::optional find(ModelId id) const; - void remove(int index); + void remove(std::size_t index); int rowCount(const QModelIndex&) const override; QVariant data(const QModelIndex& index, int role) const override; - const ModelElement& operator[](int index) const; - int size() const; - auto operator[](int index) { + const ModelElement& operator[](std::size_t index) const; + std::size_t size() const; + auto operator[](const std::size_t index) { struct { Model& model; - int index; + const std::size_t index; operator const ModelElement&() { return model.at(index); } @@ -251,7 +251,7 @@ template void iterate(const Model& model, std::function fn) { - for (int i = 0; i < model.size(); ++i) { + for (std::size_t i = 0; i < model.size(); ++i) { if (std::holds_alternative(model[i])) { fn(std::get(model[i])); }