STD::__CTYPE_ABSTRACT_BASE(3)

✨ straight out of the Library Functions Manual, section 3 β€” this is std::__ctype_abstract_base< _CharT >(3) and she's a whole mood πŸ’…

πŸ’– NAME πŸ’–

std::__ctype_abstract_base< _CharT > β€” the common base for the ctype facet. Like, the shared ancestor energy. The blueprint all the ctype girlies inherit from. πŸ‘‘


🌸 SYNOPSIS 🌸

#include <locale>

Inherits std::locale::facet, and std::ctype_base.

Inherited by std::mask< _CharT >, std::ctype< char >, and std::ctype< _CharT >. So yeah, she's the mom of the family, no cap. 🫢

✨ Public Types ✨

  • typedef const int * __to_type
  • typedef _CharT char_type β€” typedef for the template parameter, iconic behaviour honestly.
  • typedef unsigned short mask

πŸ¦‹ Public Member Functions πŸ¦‹

  • const char_type * is (const char_type *__lo, const char_type *__hi, mask *__vec) const β€” return a mask array.
  • bool is (mask __m, char_type __c) const β€” test a char_type classification.
  • char narrow (char_type __c, char __dfault) const β€” narrow char_type down to char.
  • const char_type * narrow (const char_type *__lo, const char_type *__hi, char __dfault, char *__to) const β€” narrow an array down to a char array.
  • const char_type * scan_is (mask __m, const char_type *__lo, const char_type *__hi) const β€” find a char_type matching a mask.
  • const char_type * scan_not (mask __m, const char_type *__lo, const char_type *__hi) const β€” find a char_type that does not match a mask.
  • const char_type * tolower (char_type *__lo, const char_type *__hi) const β€” convert an array to lowercase.
  • char_type tolower (char_type __c) const β€” convert to lowercase.
  • const char_type * toupper (char_type *__lo, const char_type *__hi) const β€” convert an array to uppercase.
  • char_type toupper (char_type __c) const β€” convert to uppercase.
  • char_type widen (char __c) const β€” widen a char to char_type.
  • const char * widen (const char *__lo, const char *__hi, char_type *__to) const β€” widen an array to char_type.

🌈 Static Public Attributes 🌈

  • static const mask alnum
  • static const mask alpha
  • static const mask blank
  • static const mask cntrl
  • static const mask digit
  • static const mask graph
  • static const mask lower
  • static const mask print
  • static const mask punct
  • static const mask space
  • static const mask upper
  • static const mask xdigit

πŸŽ€ Protected Member Functions πŸŽ€

  • __ctype_abstract_base (size_t __refs=0)
  • virtual const char_type * do_is (const char_type *__lo, const char_type *__hi, mask *__vec) const =0 β€” return a mask array.
  • virtual bool do_is (mask __m, char_type __c) const =0 β€” test a char_type classification.
  • virtual char do_narrow (char_type __c, char __dfault) const =0 β€” narrow char_type to char.
  • virtual const char_type * do_narrow (const char_type *__lo, const char_type *__hi, char __dfault, char *__to) const =0 β€” narrow a char_type array to char.
  • virtual const char_type * do_scan_is (mask __m, const char_type *__lo, const char_type *__hi) const =0 β€” find a char_type matching a mask.
  • virtual const char_type * do_scan_not (mask __m, const char_type *__lo, const char_type *__hi) const =0 β€” find a char_type not matching a mask.
  • virtual const char_type * do_tolower (char_type *__lo, const char_type *__hi) const =0 β€” convert an array to lowercase.
  • virtual char_type do_tolower (char_type __c) const =0 β€” convert to lowercase.
  • virtual const char_type * do_toupper (char_type *__lo, const char_type *__hi) const =0 β€” convert an array to uppercase.
  • virtual char_type do_toupper (char_type __c) const =0 β€” convert to uppercase.
  • virtual char_type do_widen (char __c) const =0 β€” widen a char.
  • virtual const char * do_widen (const char *__lo, const char *__hi, char_type *__to) const =0 β€” widen a char array.

πŸ’œ Static Protected Member Functions πŸ’œ

  • static __c_locale _S_clone_c_locale (__c_locale &__cloc) throw ()
  • static void _S_create_c_locale (__c_locale &__cloc, const char *__s, __c_locale __old=0)
  • static void _S_destroy_c_locale (__c_locale &__cloc)
  • static __c_locale _S_get_c_locale ()
  • static const char * _S_get_c_name () throw ()
  • static __c_locale _S_lc_ctype_c_locale (__c_locale __cloc, const char *__s)

⭐ Detailed Description ⭐

template<typename _CharT>
    class std::__ctype_abstract_base< _CharT >

Common base for ctype facet.

Okay so here's the tea β˜• β€” this template class hands you actual implementations of the public functions, and those implementations just forward everything to the protected virtual functions. Middle-manager behaviour, but make it couture. πŸ’…

And this template also provides abstract stubs for those protected virtual functions. So she's giving "here's the shape of it, now you do the work" β€” very main character. ✨


🧚 Member Typedef Documentation 🧚

template<typename _CharT> typedef _CharT std::__ctype_abstract_base< _CharT >::char_type

Typedef for the template parameter. That's it, that's the whole job. πŸŽ€


πŸ’– Member Function Documentation πŸ’–

do_is (the array one) 🌸

template<typename _CharT> virtual const char_type *
    std::__ctype_abstract_base< _CharT >::do_is (const char_type * __lo,
    const char_type * __hi, mask * __vec) const [protected],  [pure virtual]

Return a mask array. This function finds the mask for each char_type in the range [lo,hi) and successively writes it to vec. vec must have as many elements as the input. No skipping, bestie, the storage has to match. 😭

do_is() is a hook for a derived facet to change the behavior of classifying. do_is() must always return the same result for the same input. Consistency queen. πŸ‘‘

Parameters

  • __lo β€” pointer to start of range.
  • __hi β€” pointer to end of range.
  • __vec β€” pointer to an array of mask storage.

Returns

__hi.

Implemented in std::ctype< _CharT >, and std::mask< _CharT >.


do_is (the one-mask one) πŸ¦‹

template<typename _CharT> virtual bool std::__ctype_abstract_base< _CharT
    >::do_is (mask __m, char_type __c) const [protected],  [pure virtual]

Test char_type classification. This function finds a mask M for c and compares it to mask m. It's giving compare-and-contrast, but for characters. ✨

do_is() is a hook for a derived facet to change the behavior of classifying. do_is() must always return the same result for the same input. Same input, same output, periodt. πŸ’…

Parameters

  • __c β€” the char_type to find the mask of.
  • __m β€” the mask to compare against.

Returns

(M & __m) != 0.

Implemented in std::ctype< _CharT >, std::ctype< wchar_t >, and std::mask< _CharT >.

Referenced by std::mask< _CharT >::is(), and std::mask< _CharT >::is().


do_narrow (single char) πŸŽ€

template<typename _CharT> virtual char std::__ctype_abstract_base< _CharT
    >::do_narrow (char_type __c, char __dfault) const [protected],  [pure
    virtual]

Narrow char_type to char. This virtual function converts the argument to char using the simplest reasonable transformation. If the conversion fails, dfault is returned instead. Fallback friend behaviour, we love her. 🫢

do_narrow() is a hook for a derived facet to change the behavior of narrowing. do_narrow() must always return the same result for the same input.

⚠️ Note: this is not what you want for codepage conversions. See codecvt for that. Do not come crying to do_narrow about codepages, she will not help you. 😭

Parameters

  • __c β€” the char_type to convert.
  • __dfault β€” char to return if conversion fails.

Returns

The converted char.

Implemented in std::ctype< _CharT >, std::ctype< wchar_t >, and std::mask< _CharT >.

Referenced by std::mask< _CharT >::narrow(), and std::mask< _CharT >::narrow().


do_narrow (the array one) 🌈

template<typename _CharT> virtual const char_type *
    std::__ctype_abstract_base< _CharT >::do_narrow (const char_type * __lo,
    const char_type * __hi, char __dfault, char * __to) const [protected],
    [pure virtual]

Narrow char_type array to char. This virtual function converts each char_type in the range [__lo,__hi) to char using the simplest reasonable transformation and writes the results to the destination array. For any element in the input that cannot be converted, __dfault is used instead. One flop in the group and __dfault catches them, iconic. πŸ’…

do_narrow() is a hook for a derived facet to change the behavior of narrowing. do_narrow() must always return the same result for the same input.

⚠️ Note: this is not what you want for codepage conversions. See codecvt for that. Seriously. Not this one. πŸ™ˆ

Parameters

  • __lo β€” pointer to start of range.
  • __hi β€” pointer to end of range.
  • __dfault β€” char to use if conversion fails.
  • __to β€” pointer to the destination array.

Returns

__hi.

Implemented in std::ctype< _CharT >, and std::mask< _CharT >.


do_scan_is πŸ”₯

template<typename _CharT> virtual const char_type *
    std::__ctype_abstract_base< _CharT >::do_scan_is (mask __m, const
    char_type * __lo, const char_type * __hi) const [protected],  [pure
    virtual]

Find char_type matching mask. This function searches for and returns the first char_type c in [__lo,__hi) for which is(__m,c) is true. First match wins, no second-guessing. ⭐

do_scan_is() is a hook for a derived facet to change the behavior of match searching. do_is() must always return the same result for the same input.

Parameters

  • __m β€” the mask to compare against.
  • __lo β€” pointer to start of range.
  • __hi β€” pointer to end of range.

Returns

Pointer to a matching char_type if found, else __hi.

Implemented in std::ctype< _CharT >, std::ctype< wchar_t >, and std::mask< _CharT >.

Referenced by std::mask< _CharT >::scan_is().


do_scan_not πŸ’€

template<typename _CharT> virtual const char_type *
    std::__ctype_abstract_base< _CharT >::do_scan_not (mask __m, const
    char_type * __lo, const char_type * __hi) const [protected],  [pure
    virtual]

Find char_type not matching mask. This function searches for and returns a pointer to the first char_type c of [lo,hi) for which is(m,c) is false. The contrarian of the group chat, and honestly? Valid. πŸ™ˆ

do_scan_is() is a hook for a derived facet to change the behavior of match searching. do_is() must always return the same result for the same input.

Parameters

  • __m β€” the mask to compare against.
  • __lo β€” pointer to start of range.
  • __hi β€” pointer to end of range.

Returns

Pointer to a non-matching char_type if found, else __hi.

Implemented in std::ctype< _CharT >, std::ctype< wchar_t >, and std::mask< _CharT >.

Referenced by std::mask< _CharT >::scan_not().


do_tolower (array edition) πŸ“

template<typename _CharT> virtual const char_type *
    std::__ctype_abstract_base< _CharT >::do_tolower (char_type * __lo,
    const char_type * __hi) const [protected],  [pure virtual]

Convert array to lowercase. This virtual function converts each char_type in the range [__lo,__hi) to lowercase if possible. Other elements remain untouched. Not everything needs a glow-down and she respects that. πŸŽ€

do_tolower() is a hook for a derived facet to change the behavior of lowercasing. do_tolower() must always return the same result for the same input.

Parameters

  • __lo β€” pointer to start of range.
  • __hi β€” pointer to end of range.

Returns

__hi.

Implemented in std::ctype< _CharT >, and std::mask< _CharT >.


do_tolower (single char edition) πŸ’œ

template<typename _CharT> virtual char_type std::__ctype_abstract_base<
    _CharT >::do_tolower (char_type __c) const [protected],  [pure virtual]

Convert to lowercase. This virtual function converts the argument to lowercase if possible. If not possible (for example, '2'), returns the argument. '2' said "I'm perfect actually" and honestly, correct. πŸ’…

do_tolower() is a hook for a derived facet to change the behavior of lowercasing. do_tolower() must always return the same result for the same input.

Parameters

  • __c β€” the char_type to convert.

Returns

The lowercase char_type if convertible, else __c.


πŸ’… oh and btw, the previous one was implemented in std::ctype< _CharT >, std::ctype< wchar_t >, and std::mask< _CharT >. Also referenced by std::mask< _CharT >::tolower(), and std::mask< _CharT >::tolower() β€” not the double mention, but we move πŸ’€.

do_toupper β€” the array glow-up ✨

template<typename _CharT> virtual const char_type * std::__ctype_abstract_base< _CharT >::do_toupper (char_type * __lo, const char_type * __hi) const [protected], [pure virtual]

Convert array to uppercase, bestie. This virtual function converts each char_type in the range [__lo,__hi) to uppercase if possible. Other elements stay untouched, no cap.

do_toupper() is a hook for a derived facet to change the behavior of uppercasing. And listen: do_toupper() must always return the same result for the same input. Periodt.

  • __lo β€” pointer to start of range.
  • __hi β€” pointer to end of range.

Returns: __hi.

πŸ’– implemented in std::ctype< _CharT >, and std::mask< _CharT >.

do_toupper β€” the single char serve πŸ¦‹

template<typename _CharT> virtual char_type std::__ctype_abstract_base< _CharT >::do_toupper (char_type __c) const [protected], [pure virtual]

Convert to uppercase. This virtual function converts the char_type argument to uppercase if possible. If not possible (for example, '2'), returns the argument. It's giving "I tried my best".

do_toupper() is a hook for a derived facet to change the behavior of uppercasing. do_toupper() must always return the same result for the same input.

  • __c β€” the char_type to convert.

Returns: the uppercase char_type if convertible, else __c.

πŸ’… implemented in std::ctype< _CharT >, std::ctype< wchar_t >, and std::mask< _CharT >. referenced by std::mask< _CharT >::toupper(), and std::mask< _CharT >::toupper() β€” again with the double, but ok.

do_widen β€” char edition 🌸

template<typename _CharT> virtual char_type std::__ctype_abstract_base< _CharT >::do_widen (char __c) const [protected], [pure virtual]

Widen char. This virtual function converts the char to char_type using the simplest reasonable transformation.

do_widen() is a hook for a derived facet to change the behavior of widening. do_widen() must always return the same result for the same input.

⚠️ note: this is not what you want for codepage conversions. See codecvt for that.
  • __c β€” the char to convert.

Returns: the converted char_type.

πŸ’œ implemented in std::ctype< _CharT >, std::ctype< char >, std::ctype< wchar_t >, and std::mask< _CharT >. referenced by std::mask< _CharT >::widen(), and std::mask< _CharT >::widen().

do_widen β€” array edition 🌈

template<typename _CharT> virtual const char * std::__ctype_abstract_base< _CharT >::do_widen (const char * __lo, const char * __hi, char_type * __to) const [protected], [pure virtual]

Widen char array. This function converts each char in the input to char_type using the simplest reasonable transformation.

do_widen() is a hook for a derived facet to change the behavior of widening. do_widen() must always return the same result for the same input.

⚠️ note: this is not what you want for codepage conversions. See codecvt for that.
  • __lo β€” pointer to start range.
  • __hi β€” pointer to end of range.
  • __to β€” pointer to the destination array.

Returns: __hi.

πŸ’– implemented in std::ctype< _CharT >, and std::mask< _CharT >.

is β€” mask array vibes πŸŽ€

template<typename _CharT> const char_type * std::__ctype_abstract_base< _CharT >::is (const char_type * __lo, const char_type * __hi, mask * __vec) const [inline]

Return a mask array. This function finds the mask for each char_type in the range [lo,hi) and successively writes it to vec. vec must have as many elements as the char array. It does so by returning the value of ctype<char_type>::do_is().

  • __lo β€” pointer to start of range.
  • __hi β€” pointer to end of range.
  • __vec β€” pointer to an array of mask storage.

Returns: __hi.


is β€” single char check πŸ’…

template<typename _CharT> bool std::__ctype_abstract_base< _CharT >::is (mask __m, char_type __c) const [inline]

Test char_type classification. This function finds a mask M for __c and compares it to mask __m. It does so by returning the value of ctype<char_type>::do_is().

  • __c β€” the char_type to compare the mask of.
  • __m β€” the mask to compare against.

Returns: (M & __m) != 0.

πŸ”₯ referenced by std::time_get< _CharT, _InIter >::get().

narrow β€” single char 🧚

template<typename _CharT> char std::__ctype_abstract_base< _CharT >::narrow (char_type __c, char __dfault) const [inline]

Narrow char_type to char. This function converts the char_type to char using the simplest reasonable transformation. If the conversion fails, dfault is returned instead. It does so by returning ctype<char_type>::do_narrow(__c).

⚠️ note: this is not what you want for codepage conversions. See codecvt for that.
  • __c β€” the char_type to convert.
  • __dfault β€” char to return if conversion fails.

Returns: the converted char.

πŸ’– referenced by std::time_get< _CharT, _InIter >::do_get_year(), std::time_get< _CharT, _InIter >::get(), and std::time_put< _CharT, _OutIter >::put().

narrow β€” array πŸ¦‹

template<typename _CharT> const char_type * std::__ctype_abstract_base< _CharT >::narrow (const char_type * __lo, const char_type * __hi, char __dfault, char * __to) const [inline]

Narrow array to char array. This function converts each char_type in the input to char using the simplest reasonable transformation and writes the results to the destination array. For any char_type in the input that cannot be converted, dfault is used instead. It does so by returning ctype<char_type>::do_narrow(__lo, __hi, __dfault, __to).

⚠️ note: this is not what you want for codepage conversions. See codecvt for that.
  • __lo β€” pointer to start of range.
  • __hi β€” pointer to end of range.
  • __dfault β€” char to use if conversion fails.
  • __to β€” pointer to the destination array.

Returns: __hi.


scan_is β€” find matching mask ✨

template<typename _CharT> const char_type * std::__ctype_abstract_base< _CharT >::scan_is (mask __m, const char_type * __lo, const char_type * __hi) const [inline]

Find char_type matching a mask. This function searches for and returns the first char_type c in [lo,hi) for which is(m,c) is true. It does so by returning ctype<char_type>::do_scan_is().

  • __m β€” the mask to compare against.
  • __lo β€” pointer to start of range.
  • __hi β€” pointer to end of range.

Returns: pointer to matching char_type if found, else __hi.


scan_not β€” find non-matching mask 🌸

template<typename _CharT> const char_type * std::__ctype_abstract_base< _CharT >::scan_not (mask __m, const char_type * __lo, const char_type * __hi) const [inline]

Find char_type not matching a mask. This function searches for and returns the first char_type c in [lo,hi) for which is(m,c) is false. It does so by returning ctype<char_type>::do_scan_not().

  • __m β€” the mask to compare against.
  • __lo β€” pointer to first char in range.
  • __hi β€” pointer to end of range.

Returns: pointer to non-matching char if found, else __hi.


tolower β€” array glow-down πŸ’œ

template<typename _CharT> const char_type * std::__ctype_abstract_base< _CharT >::tolower (char_type * __lo, const char_type * __hi) const [inline]

Convert array to lowercase. This function converts each char_type in the range [__lo,__hi) to lowercase if possible. Other elements remain untouched. It does so by returning ctype<char_type>:: do_tolower(__lo, __hi).

  • __lo β€” pointer to start of range.
  • __hi β€” pointer to end of range.

Returns: __hi.


tolower β€” single char πŸ’…

template<typename _CharT> char_type std::__ctype_abstract_base< _CharT >::tolower (char_type __c) const [inline]

Convert to lowercase. This function converts the argument to lowercase if possible. If not possible (for example, '2'), returns the argument. It does so by returning ctype<char_type>::do_tolower(c).

  • __c β€” the char_type to convert.

Returns: the lowercase char_type if convertible, else __c.

πŸ”₯ referenced by std::time_get< _CharT, _InIter >::get().

toupper β€” array glow-up πŸŽ€

template<typename _CharT> const char_type * std::__ctype_abstract_base< _CharT >::toupper (char_type * __lo, const char_type * __hi) const [inline]

Convert array to uppercase. This function converts each char_type in the range [lo,hi) to uppercase if possible. Other elements remain untouched. It does so by returning ctype<char_type>:: do_toupper(lo, hi).

  • __lo β€” pointer to start of range.
  • __hi β€” pointer to end of range.

Returns: __hi.


toupper β€” single char ✨

template<typename _CharT> char_type std::__ctype_abstract_base< _CharT >::toupper (char_type __c) const [inline]

Convert to uppercase. This function converts the argument to uppercase if possible. If not possible (for example, '2'), returns the argument. It does so by returning ctype<char_type>::do_toupper().

  • __c β€” the char_type to convert.

Returns: the uppercase char_type if convertible, else __c.

πŸ”₯ referenced by std::time_get< _CharT, _InIter >::get().

widen β€” single char 🌈

template<typename _CharT> char_type std::__ctype_abstract_base< _CharT >::widen (char __c) const [inline]

Widen char to char_type. This function converts the char argument to char_type using the simplest reasonable transformation. It does so by returning ctype<char_type>::do_widen(c).

⚠️ note: this is not what you want for codepage conversions. See codecvt for that.
  • __c β€” the char to convert.

Returns: the converted char_type.

πŸ’– referenced by std::money_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >::do_get(), std::money_put< _CharT, _OutIter >::do_put(), and std::time_put< _CharT, _OutIter >::do_put().

widen β€” array πŸ¦‹

template<typename _CharT> const char * std::__ctype_abstract_base< _CharT >::widen (const char * __lo, const char * __hi, char_type * __to) const [inline]

Widen array to char_type. This function converts each char in the input to char_type using the simplest reasonable transformation. It does so by returning ctype<char_type>::do_widen(c).

⚠️ note: this is not what you want for codepage conversions. See codecvt for that.
  • __lo β€” pointer to start of range.
  • __hi β€” pointer to end of range.
  • __to β€” pointer to the destination array.

Returns: __hi.


πŸ‘‘ AUTHOR πŸ‘‘

Generated automatically by Doxygen for libstdc++ from the source code.


πŸ’– and that's the whole vibe, bestie! this manual page is from libstdc++ β€” std::__cty...< _CharT >(3) β€” periodt. slay! ✨
πŸ“¦ where this page comes from
  • arch rolling: gcc 16.2.1+r23+gd564253eb6c8-1 Β· GPL-3.0-or-later WITH GCC-exception-3.1 AND GFDL-1.3-or-later
  • fedora 43: libstdc++-docs 15.2.1-2.fc43 Β· GPL-3.0-or-later AND LGPL-3.0-or-later AND (GPL-3.0-or-later WITH GCC-exception-3.1) AND (GPL-3.0-or-later WITH Texinfo-exception) AND (LGPL-2.1-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GNU-compiler-exception) AND BSL-1.0 AND GFDL-1.3-or-later AND Linux-man-pages-copyleft-2-para AND SunPro AND BSD-1-Clause AND BSD-2-Clause AND BSD-2-Clause-Views AND BSD-3-Clause AND BSD-4-Clause AND BSD-Source-Code AND Zlib AND MIT AND Apache-2.0 AND (Apache-2.0 WITH LLVM-Exception) AND ZPL-2.1 AND ISC AND LicenseRef-Fedora-Public-Domain AND HP-1986 AND curl AND Martin-Birgmeier AND HPND-Markus-Kuhn AND dtoa AND SMLNJ AND AMD-newlib AND OAR AND HPND-merchantability-variant AND HPND-Intel
  • fedora 43: libstdc++-docs 15.3.1-1.fc43 Β· GPL-3.0-or-later AND LGPL-3.0-or-later AND (GPL-3.0-or-later WITH GCC-exception-3.1) AND (GPL-3.0-or-later WITH Texinfo-exception) AND (LGPL-2.1-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GNU-compiler-exception) AND BSL-1.0 AND GFDL-1.3-or-later AND Linux-man-pages-copyleft-2-para AND SunPro AND BSD-1-Clause AND BSD-2-Clause AND BSD-2-Clause-Views AND BSD-3-Clause AND BSD-4-Clause AND BSD-Source-Code AND Zlib AND MIT AND Apache-2.0 AND (Apache-2.0 WITH LLVM-Exception) AND ZPL-2.1 AND ISC AND LicenseRef-Fedora-Public-Domain AND HP-1986 AND curl AND Martin-Birgmeier AND HPND-Markus-Kuhn AND dtoa AND SMLNJ AND AMD-newlib AND OAR AND HPND-merchantability-variant AND HPND-Intel
  • fedora 44: libstdc++-docs 16.0.1-0.10.fc44 Β· GPL-3.0-or-later AND LGPL-3.0-or-later AND (GPL-3.0-or-later WITH GCC-exception-3.1) AND (GPL-3.0-or-later WITH Texinfo-exception) AND (LGPL-2.1-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GNU-compiler-exception) AND BSL-1.0 AND GFDL-1.3-or-later AND Linux-man-pages-copyleft-2-para AND SunPro AND BSD-1-Clause AND BSD-2-Clause AND BSD-2-Clause-Views AND BSD-3-Clause AND BSD-4-Clause AND BSD-Source-Code AND Zlib AND MIT AND Apache-2.0 AND (Apache-2.0 WITH LLVM-Exception) AND ZPL-2.1 AND ISC AND LicenseRef-Fedora-Public-Domain AND HP-1986 AND curl AND Martin-Birgmeier AND HPND-Markus-Kuhn AND dtoa AND SMLNJ AND AMD-newlib AND OAR AND HPND-merchantability-variant AND HPND-Intel
  • fedora 44: libstdc++-docs 16.2.1-2.fc44
  • fedora 44: libstdc++-docs 16.2.1-3.fc44 Β· GPL-3.0-or-later AND LGPL-3.0-or-later AND (GPL-3.0-or-later WITH GCC-exception-3.1) AND (GPL-3.0-or-later WITH Texinfo-exception) AND (LGPL-2.1-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GNU-compiler-exception) AND BSL-1.0 AND GFDL-1.3-or-later AND Linux-man-pages-copyleft-2-para AND SunPro AND BSD-1-Clause AND BSD-2-Clause AND BSD-2-Clause-Views AND BSD-3-Clause AND BSD-4-Clause AND BSD-Source-Code AND Zlib AND MIT AND Apache-2.0 AND (Apache-2.0 WITH LLVM-Exception) AND ZPL-2.1 AND ISC AND LicenseRef-Fedora-Public-Domain AND HP-1986 AND curl AND Martin-Birgmeier AND HPND-Markus-Kuhn AND dtoa AND SMLNJ AND AMD-newlib AND OAR AND HPND-merchantability-variant AND HPND-Intel
  • πŸ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms