Change integer_range's .size() member function return type to size_t.

Instead of the return type being the templated `Integer` parameter.

The integer type and the size of the range are not connected.
This commit is contained in:
Daniel J. Hofmann 2015-09-07 18:42:11 +02:00
parent 2470494009
commit be506f7121

View File

@ -32,13 +32,15 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <type_traits>
#include <cstdint>
namespace osrm
{
template <typename Integer> class range
{
private:
Integer last;
const Integer last;
Integer iter;
public:
@ -53,7 +55,10 @@ template <typename Integer> class range
const range &end() const noexcept { return *this; }
Integer front() const noexcept { return iter; }
Integer back() const noexcept { return last - 1; }
Integer size() const noexcept { return last - iter; }
std::size_t size() const noexcept
{
return static_cast<std::size_t>(last - iter);
}
// Iterator functions
bool operator!=(const range &) const noexcept { return iter < last; }