ApplicationException
рассмотренный бесполезным сильный, и критический, аргумент против ApplicationException
.
Результат: не используйте его. Произойдите от Exception
.
В данном случае приведение правильное. Из man ispunct
:
Функция
ispunct ()
проверяет наличие любого печатного символа, кроме пробела. (''
) или символ, для которогоisalnum (3)
являетсяистинным
. Ценность аргумент должен быть представлен каксимвол без знака
или значениеEOF
.
Если вы хотите использовать ispunct
, то нет никакого пути обойти это.
_ASSERTE((unsigned)(c + 1) <= 256);
Это то, что привело к сбою утверждения и, следовательно, приведение подходящего.
Это совершенно законно. Я считаю, что переменные C подписаны по умолчанию, но приведение делает его пригодным для использования.