Не имеет отношения к проблеме (на которую уже дан ответ). Но следующий код - мерзость:
return (iVal < 0)? true:false;
Условный оператор совершенно избыточен. Следующее работает так же хорошо:
return iVal < 0;
Код, такой как condition ? true : false
, должен всегда заменяться просто condition
. Никогда не используйте логические литералы (true
, false
), кроме как при назначении / инициализации.