Я пытаюсь получить максимальное значение некоторого целого целого без знака без включения каких-либо заголовков типа <limits>
. Поэтому я подумал, что просто перевернул биты значения без знака 0.
#include <iostream>
#include <limits>
int main()
{
std::cout << (~0U) << '\n'; // #1
std::cout << (std::numeric_limits< unsigned >::max()) << '\n'; // #2
return 0;
}
Я не очень разбираюсь в тонких различиях между ними. Вот почему я спрашиваю, может ли возникнуть какое-то неожиданное поведение или проблемы с платформой/архитектурой, используя первый метод.