C++ data types range and size