mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-14 23:03:04 +00:00
C++: prefer size_type to unsigned for indexes
* data/stack.hh (size_type): New, based on the container type.
This commit is contained in:
@@ -29,6 +29,7 @@ m4_define([b4_stack_define],
|
|||||||
// Hide our reversed order.
|
// Hide our reversed order.
|
||||||
typedef typename S::reverse_iterator iterator;
|
typedef typename S::reverse_iterator iterator;
|
||||||
typedef typename S::const_reverse_iterator const_iterator;
|
typedef typename S::const_reverse_iterator const_iterator;
|
||||||
|
typedef typename S::size_type size_type;
|
||||||
|
|
||||||
stack ()
|
stack ()
|
||||||
: seq_ ()
|
: seq_ ()
|
||||||
@@ -36,7 +37,7 @@ m4_define([b4_stack_define],
|
|||||||
seq_.reserve (200);
|
seq_.reserve (200);
|
||||||
}
|
}
|
||||||
|
|
||||||
stack (unsigned n)
|
stack (size_type n)
|
||||||
: seq_ (n)
|
: seq_ (n)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
@@ -44,7 +45,7 @@ m4_define([b4_stack_define],
|
|||||||
///
|
///
|
||||||
/// Index 0 returns the topmost element.
|
/// Index 0 returns the topmost element.
|
||||||
T&
|
T&
|
||||||
operator[] (unsigned i)
|
operator[] (size_type i)
|
||||||
{
|
{
|
||||||
return seq_[seq_.size () - 1 - i];
|
return seq_[seq_.size () - 1 - i];
|
||||||
}
|
}
|
||||||
@@ -53,7 +54,7 @@ m4_define([b4_stack_define],
|
|||||||
///
|
///
|
||||||
/// Index 0 returns the topmost element.
|
/// Index 0 returns the topmost element.
|
||||||
const T&
|
const T&
|
||||||
operator[] (unsigned i) const
|
operator[] (size_type i) const
|
||||||
{
|
{
|
||||||
return seq_[seq_.size () - 1 - i];
|
return seq_[seq_.size () - 1 - i];
|
||||||
}
|
}
|
||||||
@@ -69,7 +70,7 @@ m4_define([b4_stack_define],
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
pop (unsigned n = 1)
|
pop (size_type n = 1)
|
||||||
{
|
{
|
||||||
for (; n; --n)
|
for (; n; --n)
|
||||||
seq_.pop_back ();
|
seq_.pop_back ();
|
||||||
@@ -81,7 +82,7 @@ m4_define([b4_stack_define],
|
|||||||
seq_.clear ();
|
seq_.clear ();
|
||||||
}
|
}
|
||||||
|
|
||||||
typename S::size_type
|
size_type
|
||||||
size () const
|
size () const
|
||||||
{
|
{
|
||||||
return seq_.size ();
|
return seq_.size ();
|
||||||
@@ -111,20 +112,21 @@ m4_define([b4_stack_define],
|
|||||||
class slice
|
class slice
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
slice (const S& stack, unsigned range)
|
typedef typename S::size_type size_type;
|
||||||
|
slice (const S& stack, size_type range)
|
||||||
: stack_ (stack)
|
: stack_ (stack)
|
||||||
, range_ (range)
|
, range_ (range)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
const T&
|
const T&
|
||||||
operator [] (unsigned i) const
|
operator[] (size_type i) const
|
||||||
{
|
{
|
||||||
return stack_[range_ - i];
|
return stack_[range_ - i];
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
const S& stack_;
|
const S& stack_;
|
||||||
unsigned range_;
|
size_type range_;
|
||||||
};
|
};
|
||||||
]])
|
]])
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user