src/model.h

changeset 250
2837b549e616
parent 249
37d3c819cafa
child 251
94b0a30a1886
--- 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<Entry> body;
-	std::map<ModelId, int> positions;
+	std::map<ModelId, std::size_t> 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<int> 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<typename T>
 void iterate(const Model& model, std::function<void(const T&)> fn)
 {
-	for (int i = 0; i < model.size(); ++i) {
+	for (std::size_t i = 0; i < model.size(); ++i) {
 		if (std::holds_alternative<T>(model[i])) {
 			fn(std::get<T>(model[i]));
 		}

mercurial