Skip to content

Commit

Permalink
Fix the build with GCC 4.1.2
Browse files Browse the repository at this point in the history
The build was broken on CentOS 5 and CentOS 6 as a result of
commit 18d8f06 introducing
some constructs that old GCC versions could not cope with.
  • Loading branch information
dr-m committed May 27, 2020
1 parent bf1aa75 commit 1b3adaa
Showing 1 changed file with 11 additions and 6 deletions.
17 changes: 11 additions & 6 deletions include/ilist.h
Expand Up @@ -210,33 +210,38 @@ template <class T, class Tag= void> class sized_ilist : public ilist<T, Tag>

sized_ilist() : size_(0) {}

size_type size() const { return size_; }
std::size_t size() const { return size_; }

void clear()
{
BASE::clear();
size_= 0;
}

iterator insert(iterator pos, reference value)
typename ilist<T, Tag>::iterator
insert(typename ilist<T, Tag>::iterator pos,
typename ilist<T, Tag>::reference value)
{
++size_;
return BASE::insert(pos, value);
}

iterator erase(iterator pos)
typename ilist<T, Tag>::iterator erase(typename ilist<T, Tag>::iterator pos)
{
--size_;
return BASE::erase(pos);
}

void push_back(reference value) { insert(BASE::end(), value); }
void push_back(typename ilist<T, Tag>::reference value)
{ insert(BASE::end(), value); }
void pop_back() { erase(BASE::end()); }

void push_front(reference value) { insert(BASE::begin(), value); }
void push_front(typename ilist<T, Tag>::reference value)
{ insert(BASE::begin(), value); }
void pop_front() { erase(BASE::begin()); }

void remove(reference value) { erase(iterator(&value)); }
void remove(typename ilist<T, Tag>::reference value)
{ erase(iterator(&value)); }

private:
size_t size_;
Expand Down

0 comments on commit 1b3adaa

Please sign in to comment.