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_typetypedef _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 achar_typeclassification.char narrow (char_type __c, char __dfault) constβ narrowchar_typedown tochar.const char_type * narrow (const char_type *__lo, const char_type *__hi, char __dfault, char *__to) constβ narrow an array down to achararray.const char_type * scan_is (mask __m, const char_type *__lo, const char_type *__hi) constβ find achar_typematching a mask.const char_type * scan_not (mask __m, const char_type *__lo, const char_type *__hi) constβ find achar_typethat 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 achartochar_type.const char * widen (const char *__lo, const char *__hi, char_type *__to) constβ widen an array tochar_type.
π Static Public Attributes π
static const mask alnumstatic const mask alphastatic const mask blankstatic const mask cntrlstatic const mask digitstatic const mask graphstatic const mask lowerstatic const mask printstatic const mask punctstatic const mask spacestatic const mask upperstatic 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 achar_typeclassification.virtual char do_narrow (char_type __c, char __dfault) const =0β narrowchar_typetochar.virtual const char_type * do_narrow (const char_type *__lo, const char_type *__hi, char __dfault, char *__to) const =0β narrow achar_typearray tochar.virtual const char_type * do_scan_is (mask __m, const char_type *__lo, const char_type *__hi) const =0β find achar_typematching a mask.virtual const char_type * do_scan_not (mask __m, const char_type *__lo, const char_type *__hi) const =0β find achar_typenot 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 achar.virtual const char * do_widen (const char *__lo, const char *__hi, char_type *__to) const =0β widen achararray.
π 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β thechar_typeto 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. Seecodecvtfor that. Do not come crying todo_narrowabout codepages, she will not help you. π
Parameters
__cβ thechar_typeto convert.__dfaultβcharto 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βcharto 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β thechar_typeto convert.
Returns
The lowercase char_type if convertible, else __c.
π oh and btw, the previous one was implemented instd::ctype< _CharT >,std::ctype< wchar_t >, andstd::mask< _CharT >. Also referenced bystd::mask< _CharT >::tolower(), andstd::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 instd::ctype< _CharT >, andstd::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β thechar_typeto convert.
Returns: the uppercase char_type if convertible, else __c.
π implemented instd::ctype< _CharT >,std::ctype< wchar_t >, andstd::mask< _CharT >. referenced bystd::mask< _CharT >::toupper(), andstd::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β thecharto convert.
Returns: the converted char_type.
π implemented instd::ctype< _CharT >,std::ctype< char >,std::ctype< wchar_t >, andstd::mask< _CharT >. referenced bystd::mask< _CharT >::widen(), andstd::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 instd::ctype< _CharT >, andstd::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β thechar_typeto 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β thechar_typeto convert.__dfaultβ char to return if conversion fails.
Returns: the converted char.
π referenced bystd::time_get< _CharT, _InIter >::do_get_year(),std::time_get< _CharT, _InIter >::get(), andstd::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β thechar_typeto 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β thechar_typeto 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β thecharto convert.
Returns: the converted char_type.
π referenced bystd::money_get< _CharT, _InIter >::do_get(),std::time_get< _CharT, _InIter >::do_get(),std::money_put< _CharT, _OutIter >::do_put(), andstd::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