std::isupper(std::locale)(3)

πŸ“¦ version 2024.07.05, in nixpkgs unstable, opensuse-leap 16.0

🌸 NAME 🌸

std::isupper(std::locale) - std::isupper(std::locale) β€” okay bestie, this is literally the locale-aware version of isupper, straight from the C++ Standard Libary manual πŸ’…βœ¨

✨ Synopsis ✨

Defined in header <locale> πŸŽ€

template< class CharT >
bool isupper( CharT ch, const locale& loc );

Checks if the given character is classified as an uppercase alphabetic character by the given locale's std::ctype facet. No cap, that's the whole vibe check πŸ”₯

πŸ’– Parameters πŸ’–

  • ch β€” character
  • loc β€” locale

πŸ¦‹ Return value πŸ¦‹

Returns true if the character is classified as uppercase, false otherwise. Periodt πŸ’…

🌈 Possible implementation 🌈

template<class CharT>
bool isupper(CharT ch, const std::locale& loc)
{
    return std::use_facet<std::ctype<CharT>>(loc).is(std::ctype_base::upper, ch);
}

πŸŽ€ Example πŸŽ€

Demonstrates the use of std::isupper() with different locales (OS-specific). Yes, bestie, OS-specific β€” keep that in mind πŸ‘€

// Run this code

#include <iostream>
#include <locale>

int main()
{
    const wchar_t c = L'\u00de'; // LATIN CAPITAL LETTER THORN

    std::locale loc1("C");
    std::cout << std::boolalpha
              << "isupper('Þ', C locale) returned " << std::isupper(c, loc1) << '\n'
              << "islower('Þ', C locale) returned " << std::islower(c, loc1) << '\n';

    std::locale loc2("en_US.UTF8");
    std::cout << "isupper('Þ', Unicode locale) returned "
              << std::isupper(c, loc2) << '\n'
              << "islower('Þ', Unicode locale) returned "
              << std::islower(c, loc2) << '\n';
}

🌟 Possible output 🌟

isupper('Þ', C locale) returned false
islower('Þ', C locale) returned false
isupper('Þ', Unicode locale) returned true
islower('Þ', Unicode locale) returned false

πŸ‘‘ See also πŸ‘‘

  • isupper β€” checks if a character is an uppercase character (function)
  • iswupper β€” checks if a wide character is an uppercase character (function)

That's the whole page, bestie 🫢 source is http://cppreference.com, version/date is 2024.06.10, and this iconic little manual page is std::isupper(std::locale)(3) πŸ’œβœ¨

πŸ“¦ where this page comes from