LINUX.ORG.RU

История изменений

Исправление nanoolinux, (текущая версия) :

Что-то типа такого, рекурсивного бреда. Типы для итераторов не указаны, потому-что они разные, а спп нужен какой-то один. У тебя же их аж 6ть.


struct Value {
  iterator begin,
  iterator current
  const iterator end,
};

bool increment(list <Value>::iterator it, const list <Value>::iterator &end)
{
  if (it == end) {
    return false;
  } else {
    if (it->current != it->end) {
      ++(it->current);
    }
    if (it->current != it->end) {
      return true;
    } else {
      it->current = it->begin;
      return increment(++it, end);
    }
  }
}

Исправление nanoolinux, :

Что-то типа такого, рекурсивного бреда. Типы для итераторов не указаны, потому-что они разные, а спп нужен какой-то один. У тебя же их аж 6ть.


struct Value {
  iterator begin,
  iterator current
  const iterator end,
};

bool increment(list <Value>::iterator it, list <Value>::iterator end)
{
  if (it == end) {
    return false;
  } else {
    if (it->current != it->end) {
      ++(it->current);
    }
    if (it->current != it->end) {
      return true;
    } else {
      it->current = it->begin;
      return increment(++it, end);
    }
  }
}

Исправление nanoolinux, :

Что-то типа такого, рекурсивного бреда. Типы для итераторов не указаны, потому-что они разные, а спп нужен какой-то один. У тебя же их аж 6ть.


struct Value {
  iterator begin,
  iterator current
  const iterator end,
};

bool increment(list <Value>::iterator it, list <Value>::iterator end)
{
  if (it == end) {
    return false;
  } else {
    if (it->current != end) {
      ++(it->current);
    }
    if (it->current != end) {
      return true;
    } else {
      it->current = it->begin;
      return increment(++it, end);
    }
  }
}

Исходная версия nanoolinux, :

Что-то типа такого, рекурсивного бреда. Типы для итераторов не указаны, потому-что они разные, а спп нужен какой-то один. У тебя же их аж 6ть.


struct Value {
  iterator begin,
  iterator current
  const iterator end,
};

bool increment(list <Value>::iterator it, list <Value>::iterator end)
{
  if (it == end) {
    return false;
  } else {
    if (it->current != end) {
      ++(it->current);
    }
    if (it->current != end) {
      return true;
    } else {
      it->current = it->begin;
      increment(++it, end);
    }
  }
}