From ad3c70bbc8b9f486d08cced1e337015ba4e372d5 Mon Sep 17 00:00:00 2001 From: Lynix Date: Sat, 3 Jan 2015 21:50:37 +0100 Subject: [PATCH] Added SparsePtr substraction operator Former-commit-id: e2dadc06b1f1abbd257689e6eaee77ebbfa0af5b --- include/Nazara/Core/SparsePtr.hpp | 2 ++ include/Nazara/Core/SparsePtr.inl | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/include/Nazara/Core/SparsePtr.hpp b/include/Nazara/Core/SparsePtr.hpp index 74a64425d..8d104827c 100644 --- a/include/Nazara/Core/SparsePtr.hpp +++ b/include/Nazara/Core/SparsePtr.hpp @@ -10,6 +10,7 @@ ///FIXME: Est-ce que SparsePtr est vraiment le meilleur nom pour cette classe ? #include +#include #include template @@ -46,6 +47,7 @@ class NzSparsePtr NzSparsePtr operator+(int count) const; NzSparsePtr operator-(int count) const; + std::ptrdiff_t operator-(const NzSparsePtr& ptr) const; NzSparsePtr& operator+=(int count); NzSparsePtr& operator-=(int count); diff --git a/include/Nazara/Core/SparsePtr.inl b/include/Nazara/Core/SparsePtr.inl index 661c9292a..eb6c988ae 100644 --- a/include/Nazara/Core/SparsePtr.inl +++ b/include/Nazara/Core/SparsePtr.inl @@ -133,6 +133,12 @@ NzSparsePtr NzSparsePtr::operator-(int count) const return NzSparsePtr(m_ptr - count*m_stride, m_stride); } +template +std::ptrdiff_t NzSparsePtr::operator-(const NzSparsePtr& ptr) const +{ + return (m_ptr - ptr.m_ptr)/m_stride; +} + template NzSparsePtr& NzSparsePtr::operator+=(int count) {