Да, есть:
if (var < 32767) var++;
Кстати, вы не должны жестко кодировать константу, вместо этого используйте numeric_limits<short>::max()
, определенный в <limits>
заголовочном файле.
Вы можетеинкапсулируйте эту функциональность в шаблон функции:
template <class T>
void increment_without_wraparound(T& value) {
if (value < numeric_limits<T>::max())
value++;
}
и используйте его следующим образом:
short var = 32767;
increment_without_wraparound(var); // pick a shorter name!