If you use a long instead, the answer to both of your inquiries is yes.
Prior to C++20, its minimum range was -2147483647 to +2147483647, which was sufficient.
(Consider an int with a minimum range of -32767 to +32767.)
In addition, starting with C++20, the minimum is -2147483648, thus signed integral types become easier to deal with.