Uint_MAX: могу ли я доверять ему для головы и хвоста кольцевого буфера?C++

Программы на C++. Форум разработчиков
Anonymous
Uint_MAX: могу ли я доверять ему для головы и хвоста кольцевого буфера?

Сообщение Anonymous »

У меня есть кольцевой буфер, в котором хранится индекс начала и конца в виде целочисленного значения без знака. Согласно этому источнику, достаточно выполнить перенос только при получении индексов и просто позволить поведению uint позаботиться о переносе по uint_MAX. Это справедливо для всех реализаций или я полагаюсь на неопределенное поведение?
Демо
#include
#include
#include

int main()
{
size_t max = std::numeric_limits::max();
size_t head = max - 5;
size_t tail = max + 5;
size_t len = tail - head;
std::cout

Подробнее здесь: https://stackoverflow.com/questions/786 ... d-and-tail

Вернуться в «C++»