std::iswgraph(3)
π std::iswgraph(3) π
okay so this is the std::iswgraph(3) page from the C++ Standard Libary manual β yes, that's literally how the header spells it, and we're moving on π. It's the C++ Standard Library's wide-character graph check, and it's giving "tiny function, big locale energy." π
π NAME π
std::iswgraph β std::iswgraph (the NAME section said what it said, bestie π«Ά).
β¨ Synopsis β¨
Defined in header <cwctype>:
int iswgraph( std::wint_t ch );
Checks if the given wide character has a graphical representation, i.e. it is either:
- a number (
0123456789), - an uppercase letter (
ABCDEFGHIJKLMNOPQRSTUVWXYZ), - a lowercase letter (
abcdefghijklmnopqrstuvwxyz), - a punctuation character (
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~), or - any graphical character specific to the current C locale.
π¨ If the value ofchis neither representable as awchar_tnor equal to the value of the macroWEOF, the behavior is undefined. Like, do not test fate with that one, bestie.
πΈ Parameters πΈ
chβ wide character.
π Return value π
Non-zero value if the wide character has a graphical representation character, zero otherwise.
π¦ Notes π¦
ISO 30112 specifies which Unicode characters are include in the POSIX graph category. (That's the note, periodt.)
π Example π
// Run this code
#include <clocale>
#include <cwctype>
#include <iostream>
int main()
{
wchar_t c = L'\u2602'; // the Unicode character Umbrella ('β')
std::cout << std::hex << std::showbase << std::boolalpha
<< "in the default locale, iswgraph("
<< static_cast<std::wint_t>(c) << ") = "
<< static_cast<bool>(std::iswgraph(c)) << '\n';
std::setlocale(LC_ALL, "en_US.utf8");
std::cout << "in Unicode locale, iswgraph("
<< static_cast<std::wint_t>(c) << ") = "
<< static_cast<bool>(std::iswgraph(c)) << '\n';
}
π Output π
in the default locale, iswgraph(0x2602) = false
in Unicode locale, iswgraph(0x2602) = true
π See also π
isgraph(std::locale)β checks if a character is classified as graphical by a locale (function template).isgraphβ checks if a character is a graphical character (function).- C documentation for
iswgraph.
and because we do not skip the iconic data, here's the whole ASCII values table from the page, preserved in all its chaotic glory π«Ά:
ASCII values characters iscntrl isprint isspace
isblank isgraph ispunct isalnum isalpha isupper islower isdigit
isxdigit decimal hexadecimal octal iswcntrl iswprint
iswspace iswblank iswgraph iswpunct iswalnum iswalpha iswupper iswlower
iswdigit iswxdigit 0β8 \x0β\x8 \0β\10 control codes β 0
0 0 0 0 0 0 0 0
0 0 0
(NUL, etc.) 9 \x9 \11
tab (\t) β 0 0 β 0 β 0 0 0 0
0 0 0 0 0
whitespaces 10β13 \xAβ\xD \12β\15
(\n, \v, \f, β 0 0 β 0 0 0 0 0
0 0 0 0 0
\r) 14β31 \xEβ\x1F \16β\37 control
codes β 0 0 0 0 0 0 0 0
0 0 0 0 32 \x20 \40 space
0 β 0 β 0 β 0 0 0 0 0
0 0 0 0 33β47 \x21β\x2F \41β\57
!"#$%&'()*+,-./ 0 β 0 0 0 β 0 β 0 0
0 0 0 0 0 48β57 \x30β\x39 \60β\71
0123456789 0 β 0 0 0 β 0 0 β 0
0 0 0 β 0 β 0 58β64 \x3Aβ\x40 \72β\100
:;<=>?@ 0 β 0 0 0 β 0 β 0 0
0 0 0 0 0 65β70 \x41β\x46 \101β\106
ABCDEF 0 β 0 0 0 β 0 0 β 0
β 0 β 0 0 0 β 0 71β90 \x47β\x5A \107β\132
GHIJKLMNOP 0 β 0 0 0 β 0 0 β 0
β 0 β 0 0 0 0
QRSTUVWXYZ 91β96 \x5Bβ\x60 \133β\140
[\]^_` 0 β 0 0 0 β 0 β 0 0
0 0 0 0 0 97β102 \x61β\x66 \141β\146
abcdef 0 β 0 0 0 β 0 0 β 0
β 0 0 β 0 0 β 0 103β122 \x67β\x7A \147β\172
ghijklmnop 0 β 0 0 0 β 0 0 β 0
β 0 0 β 0 0 0
qrstuvwxyz 123β126 \x7Bβ\x7E \172β\176
{|}~ 0 β 0 0 0 β 0 β 0 0
0 0 0 0 0 127 \x7F \177
backspace β 0 0 0 0 0 0 0
0 0 0 0 0
character (DEL)
mwah π β signing off from http://cppreference.com, stamped 2024.06.10, for std::iswgraph(3). bye bestie! πβ¨
π¦ where this page comes from
- nixpkgs unstable: stdman 2024.07.05
- opensuse-leap 16.0: stdman 2024.07.05-bp160.1.9 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms