Является ли std::isspace противоположностью std::isgraph в C (языковые версии)

#c #locale #whitespace #isspace

#c #язык #пробел #isspace

Вопрос:

Является ли std::isspace противоположностью std::isgraph в C (версии локали)? То есть верно ли следующее?

 char c = getCharFromSomewhere();
std::locale loc = getLocaleFromSomewhere();
std::isspace(c, loc) != std::isgraph(c, loc)
  

Они кажутся истинными, когда я тестирую, но я не могу быть уверен, что это верно во всех локалях.

Комментарии:

1. Я бы сказал, нет. Существуют управляющие символы, например 'a' , которые не являются пробелами и не являются графическими. Смотрите std::isgraph , особенно на диаграмму внизу.

2. graph определяется как alnum | punct , но есть также cntrl и print , которые в него не включены.