__GNU_PBDS::GP_HASH_TABLE(3)
πΈ NAME πΈ
__gnu_pbds::gp_hash_table< Key, Mapped, Hash_Fn, Eq_Fn, Comb_Probe_Fn, Probe_Fn, Resize_Policy, Store_Hash, _Alloc >
okay so real talk, this whole thing lives in the Library Functions Manual (that's the section 3 energy π ), and bestie, it's a lot. This is part 1 of 2, so buckle up, we're not done yet.
β¨ SYNOPSIS β¨
first things first, you gotta pull in the header:
#include <assoc_container.hpp>
and it inherits from:
__gnu_pbds::basic_hash_table< Key, Mapped, Hash_Fn, Eq_Fn,
Resize_Policy, Store_Hash, Tag, Policy_Tl, _Alloc >
π Public Types
typedef Comb_Probe_Fn comb_probe_fnβ the combining probe functor, but make it a cute lil nickname β¨typedef gp_hash_tag container_categoryβ this container's category tag, and it's giving general probing π¦typedef Eq_Fn eq_fnβ the equality functor's stage nametypedef Hash_Fn hash_fnβ the hashing functor's stage nametypedef Probe_Fn probe_fnβ the probe functor's stage nametypedef Resize_Policy resize_policyβ the resize policy's stage name
π«Ά Public Member Functions
gp_hash_table ()β Default constructor. baby's first container π£gp_hash_table (const gp_hash_table &other)β the copy constructor, no notesgp_hash_table (const hash_fn &h)β Constructor taking some policy objects.r_hash_fnwill be copied by thehash_fnobject of the container object.gp_hash_table (const hash_fn &h, const eq_fn &e)β Constructor taking some policy objects.r_hash_fnwill be copied by thehash_fnobject of the container object, andr_eq_fnwill be copied by theeq_fnobject of the container object.gp_hash_table (const hash_fn &h, const eq_fn &e, const comb_probe_fn &cp)β Constructor taking some policy objects.r_hash_fnwill be copied by thehash_fnobject of the container object,r_eq_fnwill be copied by theeq_fnobject of the container object, andr_comb_probe_fnwill be copied by thecomb_probe_fnobject of the container object.gp_hash_table (const hash_fn &h, const eq_fn &e, const comb_probe_fn &cp, const probe_fn &p)β Constructor taking some policy objects.r_hash_fnwill be copied by thehash_fnobject of the container object,r_eq_fnwill be copied by theeq_fnobject of the container object,r_comb_probe_fnwill be copied by thecomb_probe_fnobject of the container object, andr_probe_fnwill be copied by theprobe_fnobject of the container object.gp_hash_table (const hash_fn &h, const eq_fn &e, const comb_probe_fn &cp, const probe_fn &p, const resize_policy &rp)β Constructor taking some policy objects.r_hash_fnwill be copied by thehash_fnobject of the container object,r_eq_fnwill be copied by theeq_fnobject of the container object,r_comb_probe_fnwill be copied by thecomb_probe_fnobject of the container object,r_probe_fnwill be copied by theprobe_fnobject of the container object, andr_resize_policywill be copied by theResize_Policyobject of the container object.template<typename It> gp_hash_table (It first, It last)β Constructor taking__iteratorsto a range ofvalue_types. Thevalue_typesbetweenfirst_itandlast_itwill be inserted into the container object.template<typename It> gp_hash_table (It first, It last, const hash_fn &h)β Constructor taking__iteratorsto a range ofvalue_typesand some policy objects. Thevalue_typesbetweenfirst_itandlast_itwill be inserted into the container object.r_hash_fnwill be copied by thehash_fnobject of the container object.template<typename It> gp_hash_table (It first, It last, const hash_fn &h, const eq_fn &e)β Constructor taking__iteratorsto a range ofvalue_typesand some policy objects. Thevalue_typesbetweenfirst_itandlast_itwill be inserted into the container object.r_hash_fnwill be copied by thehash_fnobject of the container object, andr_eq_fnwill be copied by theeq_fnobject of the container object.template<typename It> gp_hash_table (It first, It last, const hash_fn &h, const eq_fn &e, const comb_probe_fn &cp)β Constructor taking__iteratorsto a range ofvalue_typesand some policy objects. Thevalue_typesbetweenfirst_itandlast_itwill be inserted into the container object.r_hash_fnwill be copied by thehash_fnobject of the container object,r_eq_fnwill be copied by theeq_fnobject of the container object, andr_comb_probe_fnwill be copied by thecomb_probe_fnobject of the container object.template<typename It> gp_hash_table (It first, It last, const hash_fn &h, const eq_fn &e, const comb_probe_fn &cp, const probe_fn &p)β Constructor taking__iteratorsto a range ofvalue_typesand some policy objects. Thevalue_typesbetweenfirst_itandlast_itwill be inserted into the container object.r_hash_fnwill be copied by thehash_fnobject of the container object,r_eq_fnwill be copied by theeq_fnobject of the container object,r_comb_probe_fnwill be copied by thecomb_probe_fnobject of the container object, andr_probe_fnwill be copied by theprobe_fnobject of the container object.template<typename It> gp_hash_table (It first, It last, const hash_fn &h, const eq_fn &e, const comb_probe_fn &cp, const probe_fn &p, const resize_policy &rp)β Constructor taking__iteratorsto a range ofvalue_typesand some policy objects. Thevalue_typesbetweenfirst_itandlast_itwill be inserted into the container object.r_hash_fnwill be copied by thehash_fnobject of the container object,r_eq_fnwill be copied by theeq_fnobject of the container object,r_comb_probe_fnwill be copied by thecomb_probe_fnobject of the container object,r_probe_fnwill be copied by theprobe_fnobject of the container object, andr_resize_policywill be copied by theresize_policyobject of the container object.gp_hash_table & operator= (const gp_hash_table &other)β assignment, you know the drill πvoid swap (gp_hash_table &other)β swaps withother, iconic behaviour
π Detailed Description π
okay here's the actual class declaration, no cap:
template<typename Key, typename Mapped, typename Hash_Fn = typename
detail::default_hash_fn<Key>::type, typename Eq_Fn = typename
detail::default_eq_fn<Key>::type, typename Comb_Probe_Fn =
detail::default_comb_hash_fn::type, typename Probe_Fn = typename
detail::default_probe_fn<Comb_Probe_Fn>::type, typename Resize_Policy =
typename detail::default_resize_policy<Comb_Probe_Fn>::type, bool
Store_Hash = detail::default_store_hash, typename _Alloc =
std::allocator<char>>
class __gnu_pbds::gp_hash_table< Key, Mapped, Hash_Fn, Eq_Fn,
Comb_Probe_Fn, Probe_Fn, Resize_Policy, Store_Hash, _Alloc >
"A general-probing hash-based associative container."
like. the range on this. general probing, hashing, associatingβ¦ it's giving main character energy π
π§ Template Parameters
Keyβ Key type.Mappedβ Map type.Hash_Fnβ Hashing functor.Eq_Fnβ Equal functor.Comb_Probe_Fnβ Combining probe functor. IfHash_Fnis notnull_type, then this is the ranged-probe functor; otherwise, this is the range-hashing functor. XXX SeeDesign::Hash-Based Containers::Hash Policies.Probe_Fnβ Probe functor.Resize_Policyβ Resizes hash.Store_Hashβ Indicates whether the hash value will be stored along with each key. IfHash_Fnisnull_type, then the container will not compile if this value istrue._Allocβ Allocator type.
π¨ bestie, read thatStore_Hashone again. IfHash_Fnisnull_typeand you setStore_Hashtotrue, the container will not compile. That's a hard no, not a vibe check, an actual compile error. π
Base tag choices are: gp_hash_tag.
Base is basic_hash_table.
π Constructor & Destructor Documentation π
β gp_hash_table () β the default one
template<typename Key, typename Mapped, typename Hash_Fn = typename
detail::default_hash_fn<Key>::type, typename Eq_Fn = typename
detail::default_eq_fn<Key>::type, typename Comb_Probe_Fn =
detail::default_comb_hash_fn::type, typename Probe_Fn = typename
detail::default_probe_fn<Comb_Probe_Fn>::type, typename Resize_Policy =
typename detail::default_resize_policy<Comb_Probe_Fn>::type, bool
Store_Hash = detail::default_store_hash, typename _Alloc =
std::allocator<char>> __gnu_pbds::gp_hash_table< Key, Mapped, Hash_Fn,
Eq_Fn, Comb_Probe_Fn, Probe_Fn, Resize_Policy, Store_Hash, _Alloc
>::gp_hash_table () [inline]
Default constructor. yes queen, zero args, zero thoughts, just vibes π
β gp_hash_table (const hash_fn &h)
template<typename Key, typename Mapped, typename Hash_Fn = typename
detail::default_hash_fn<Key>::type, typename Eq_Fn = typename
detail::default_eq_fn<Key>::type, typename Comb_Probe_Fn =
detail::default_comb_hash_fn::type, typename Probe_Fn = typename
detail::default_probe_fn<Comb_Probe_Fn>::type, typename Resize_Policy =
typename detail::default_resize_policy<Comb_Probe_Fn>::type, bool
Store_Hash = detail::default_store_hash, typename _Alloc =
std::allocator<char>> __gnu_pbds::gp_hash_table< Key, Mapped, Hash_Fn,
Eq_Fn, Comb_Probe_Fn, Probe_Fn, Resize_Policy, Store_Hash, _Alloc
>::gp_hash_table (const hash_fn & h) [inline]
Constructor taking some policy objects. r_hash_fn will be copied by the hash_fn object of the container object. one policy object, one slay β¨
β gp_hash_table (const hash_fn &h, const eq_fn &e)
template<typename Key, typename Mapped, typename Hash_Fn = typename
detail::default_hash_fn<Key>::type, typename Eq_Fn = typename
detail::default_eq_fn<Key>::type, typename Comb_Probe_Fn =
detail::default_comb_hash_fn::type, typename Probe_Fn = typename
detail::default_probe_fn<Comb_Probe_Fn>::type, typename Resize_Policy =
typename detail::default_resize_policy<Comb_Probe_Fn>::type, bool
Store_Hash = detail::default_store_hash, typename _Alloc =
std::allocator<char>> __gnu_pbds::gp_hash_table< Key, Mapped, Hash_Fn,
Eq_Fn, Comb_Probe_Fn, Probe_Fn, Resize_Policy, Store_Hash, _Alloc
>::gp_hash_table (const hash_fn & h, const eq_fn & e) [inline]
Constructor taking some policy objects. r_hash_fn will be copied by the hash_fn object of the container object, and r_eq_fn will be copied by the eq_fn object of the container object. two policy objects, hashing and equality, we love a matching set π
β gp_hash_table (const hash_fn &h, const eq_fn &e, const comb_probe_fn &cp)
template<typename Key, typename Mapped, typename Hash_Fn = typename
detail::default_hash_fn<Key>::type, typename Eq_Fn = typename
detail::default_eq_fn<Key>::type, typename Comb_Probe_Fn =
detail::default_comb_hash_fn::type, typename Probe_Fn = typename
detail::default_probe_fn<Comb_Probe_Fn>::type, typename Resize_Policy =
typename detail::default_resize_policy<Comb_Probe_Fn>::type, bool
Store_Hash = detail::default_store_hash, typename _Alloc =
std::allocator<char>> __gnu_pbds::gp_hash_table< Key, Mapped, Hash_Fn,
Eq_Fn, Comb_Probe_Fn, Probe_Fn, Resize_Policy, Store_Hash, _Alloc
>::gp_hash_table (const hash_fn & h, const eq_fn & e, const
comb_probe_fn & cp) [inline]
Constructor taking some policy objects. r_hash_fn will be copied by the hash_fn object of the container object, r_eq_fn will be copied by the eq_fn object of the container object, and r_comb_probe_fn will be copied by the comb_probe_fn object of the container object. and now the combining probe functor pulls up too, the trio is complete π¦
β¨ to be continued, bestie β part 2 is coming and there's more of this constructor saga β¨
π¦ more constructor lore (the policy-object era)
π gp_hash_table(const hash_fn & h, const eq_fn & e, const comb_probe_fn & cp, const probe_fn & p)
template<typename Key, typename Mapped, typename Hash_Fn = typename
detail::default_hash_fn<Key>::type, typename Eq_Fn = typename
detail::default_eq_fn<Key>::type, typename Comb_Probe_Fn =
detail::default_comb_hash_fn::type, typename Probe_Fn = typename
detail::default_probe_fn<Comb_Probe_Fn>::type, typename Resize_Policy =
typename detail::default_resize_policy<Comb_Probe_Fn>::type, bool
Store_Hash = detail::default_store_hash, typename _Alloc =
std::allocator<char>>
__gnu_pbds::gp_hash_table< Key, Mapped, Hash_Fn, Eq_Fn, Comb_Probe_Fn,
Probe_Fn, Resize_Policy, Store_Hash, _Alloc >::gp_hash_table
(const hash_fn & h, const eq_fn & e, const comb_probe_fn & cp,
const probe_fn & p) [inline]
okay so this is the constructor that takes some policy objects, bestie. r_hash_fn will be copied by the hash_fn object of the container object, r_eq_fn will be copied by the eq_fn object of the container object, r_comb_probe_fn will be copied by the comb_probe_fn object of the container object, and r_probe_fn will be copied by the probe_fn object of the container object. four policy besties, all getting lovingly copied into their designated container slots π«Ά it's giving "here hold my customizations" and honestly? iconic.
π gp_hash_table(const hash_fn & h, const eq_fn & e, const comb_probe_fn & cp, const probe_fn & p, const resize_policy & rp)
template<typename Key, typename Mapped, typename Hash_Fn = typename
detail::default_hash_fn<Key>::type, typename Eq_Fn = typename
detail::default_eq_fn<Key>::type, typename Comb_Probe_Fn =
detail::default_comb_hash_fn::type, typename Probe_Fn = typename
detail::default_probe_fn<Comb_Probe_Fn>::type, typename Resize_Policy =
typename detail::default_resize_policy<Comb_Probe_Fn>::type, bool
Store_Hash = detail::default_store_hash, typename _Alloc =
std::allocator<char>>
__gnu_pbds::gp_hash_table< Key, Mapped, Hash_Fn, Eq_Fn, Comb_Probe_Fn,
Probe_Fn, Resize_Policy, Store_Hash, _Alloc >::gp_hash_table
(const hash_fn & h, const eq_fn & e, const comb_probe_fn & cp,
const probe_fn & p, const resize_policy & rp) [inline]
same vibe as the last one except now we brought a fifth friend: this constructor takes some policy objects, and r_hash_fn will be copied by the hash_fn object of the container object, r_eq_fn will be copied by the eq_fn object of the container object, r_comb_probe_fn will be copied by the comb_probe_fn object of the container object, r_probe_fn will be copied by the probe_fn object of the container object, and r_resize_policy will be copied by the Resize_Policy object of the container object. the full squad is assembled, no notes π
π the iterator-range constructors (my beloved)
β¨ gp_hash_table(It first, It last)
template<typename Key, typename Mapped, typename Hash_Fn = typename
detail::default_hash_fn<Key>::type, typename Eq_Fn = typename
detail::default_eq_fn<Key>::type, typename Comb_Probe_Fn =
detail::default_comb_hash_fn::type, typename Probe_Fn = typename
detail::default_probe_fn<Comb_Probe_Fn>::type, typename Resize_Policy =
typename detail::default_resize_policy<Comb_Probe_Fn>::type, bool
Store_Hash = detail::default_store_hash, typename _Alloc =
std::allocator<char>>
template<typename It>
__gnu_pbds::gp_hash_table< Key, Mapped, Hash_Fn, Eq_Fn, Comb_Probe_Fn,
Probe_Fn, Resize_Policy, Store_Hash, _Alloc >::gp_hash_table
(It first, It last) [inline]
this one is a constructor taking __iterators to a range of value_types. the value_types between first_it and last_it will be inserted into the container object. so you hand it a range and it just... eats it. very demure, very mindful, very "fill my container pls" π
πΈ gp_hash_table(It first, It last, const hash_fn & h)
template<typename Key, typename Mapped, typename Hash_Fn = typename
detail::default_hash_fn<Key>::type, typename Eq_Fn = typename
detail::default_eq_fn<Key>::type, typename Comb_Probe_Fn =
detail::default_comb_hash_fn::type, typename Probe_Fn = typename
detail::default_probe_fn<Comb_Probe_Fn>::type, typename Resize_Policy =
typename detail::default_resize_policy<Comb_Probe_Fn>::type, bool
Store_Hash = detail::default_store_hash, typename _Alloc =
std::allocator<char>>
template<typename It>
__gnu_pbds::gp_hash_table< Key, Mapped, Hash_Fn, Eq_Fn, Comb_Probe_Fn,
Probe_Fn, Resize_Policy, Store_Hash, _Alloc >::gp_hash_table
(It first, It last, const hash_fn & h) [inline]
constructor taking __iterators to a range of value_types and some policy objects β look at her, multitasking π. the value_types between first_it and last_it will be inserted into the container object, and r_hash_fn will be copied by the hash_fn object of the container object. range + hash policy, a duo fr fr.
π gp_hash_table(It first, It last, const hash_fn & h, const eq_fn & e)
template<typename Key, typename Mapped, typename Hash_Fn = typename
detail::default_hash_fn<Key>::type, typename Eq_Fn = typename
detail::default_eq_fn<Key>::type, typename Comb_Probe_Fn =
detail::default_comb_hash_fn::type, typename Probe_Fn = typename
detail::default_probe_fn<Comb_Probe_Fn>::type, typename Resize_Policy =
typename detail::default_resize_policy<Comb_Probe_Fn>::type, bool
Store_Hash = detail::default_store_hash, typename _Alloc =
std::allocator<char>>
template<typename It>
__gnu_pbds::gp_hash_table< Key, Mapped, Hash_Fn, Eq_Fn, Comb_Probe_Fn,
Probe_Fn, Resize_Policy, Store_Hash, _Alloc >::gp_hash_table
(It first, It last, const hash_fn & h, const eq_fn & e) [inline]
constructor taking __iterators to a range of value_types and some policy objects. the value_types between first_it and last_it will be inserted into the container object, r_hash_fn will be copied by the hash_fn object of the container object, and r_eq_fn will be copied by the eq_fn object of the container object. two policies deep and still thriving π
π§ gp_hash_table(It first, It last, const hash_fn & h, const eq_fn & e, const comb_probe_fn & cp)
template<typename Key, typename Mapped, typename Hash_Fn = typename
detail::default_hash_fn<Key>::type, typename Eq_Fn = typename
detail::default_eq_fn<Key>::type, typename Comb_Probe_Fn =
detail::default_comb_hash_fn::type, typename Probe_Fn = typename
detail::default_probe_fn<Comb_Probe_Fn>::type, typename Resize_Policy =
typename detail::default_resize_policy<Comb_Probe_Fn>::type, bool
Store_Hash = detail::default_store_hash, typename _Alloc =
std::allocator<char>>
template<typename It>
__gnu_pbds::gp_hash_table< Key, Mapped, Hash_Fn, Eq_Fn, Comb_Probe_Fn,
Probe_Fn, Resize_Policy, Store_Hash, _Alloc >::gp_hash_table
(It first, It last, const hash_fn & h, const eq_fn & e,
const comb_probe_fn & cp) [inline]
constructor taking __iterators to a range of value_types and some policy objects. the value_types between first_it and last_it will be inserted into the container object, r_hash_fn will be copied by the hash_fn object of the container object, r_eq_fn will be copied by the eq_fn object of the container object, and r_comb_probe_fn will be copied by the comb_probe_fn object of the container object. three policy objects, one range, zero complaints π
π₯ gp_hash_table(It first, It last, const hash_fn & h, const eq_fn & e, const comb_probe_fn & cp, const probe_fn & p)
template<typename Key, typename Mapped, typename Hash_Fn = typename
detail::default_hash_fn<Key>::type, typename Eq_Fn = typename
detail::default_eq_fn<Key>::type, typename Comb_Probe_Fn =
detail::default_comb_hash_fn::type, typename Probe_Fn = typename
detail::default_probe_fn<Comb_Probe_Fn>::type, typename Resize_Policy =
typename detail::default_resize_policy<Comb_Probe_Fn>::type, bool
Store_Hash = detail::default_store_hash, typename _Alloc =
std::allocator<char>>
template<typename It>
__gnu_pbds::gp_hash_table< Key, Mapped, Hash_Fn, Eq_Fn, Comb_Probe_Fn,
Probe_Fn, Resize_Policy, Store_Hash, _Alloc >::gp_hash_table
(It first, It last, const hash_fn & h, const eq_fn & e,
const comb_probe_fn & cp, const probe_fn & p) [inline]
constructor taking __iterators to a range of value_types and some policy objects. the value_types between first_it and last_it will be inserted into the container object, r_hash_fn will be copied by the hash_fn object of the container object, r_eq_fn will be copied by the eq_fn object of the container object, r_comb_probe_fn will be copied by the comb_probe_fn object of the container object, and r_probe_fn will be copied by the probe_fn object of the container object. four policies, no cap, she ate π₯
β gp_hash_table(It first, It last, const hash_fn & h, const eq_fn & e, const comb_probe_fn & cp, const probe_fn & p, const resize_policy & rp)
template<typename Key, typename Mapped, typename Hash_Fn = typename
detail::default_hash_fn<Key>::type, typename Eq_Fn = typename
detail::default_eq_fn<Key>::type, typename Comb_Probe_Fn =
detail::default_comb_hash_fn::type, typename Probe_Fn = typename
detail::default_probe_fn<Comb_Probe_Fn>::type, typename Resize_Policy =
typename detail::default_resize_policy<Comb_Probe_Fn>::type, bool
Store_Hash = detail::default_store_hash, typename _Alloc =
std::allocator<char>>
template<typename It>
__gnu_pbds::gp_hash_table< Key, Mapped, Hash_Fn, Eq_Fn, Comb_Probe_Fn,
Probe_Fn, Resize_Policy, Store_Hash, _Alloc >::gp_hash_table
(It first, It last, const hash_fn & h, const eq_fn & e,
const comb_probe_fn & cp, const probe_fn & p,
const resize_policy & rp) [inline]
the final boss of range constructors π constructor taking __iterators to a range of value_types and some policy objects. the value_types between first_it and last_it will be inserted into the container object, r_hash_fn will be copied by the hash_fn object of the container object, r_eq_fn will be copied by the eq_fn object of the container object, r_comb_probe_fn will be copied by the comb_probe_fn object of the container object, r_probe_fn will be copied by the probe_fn object of the container object, and r_resize_policy will be copied by the resize_policy object of the container object. every single policy accounted for, main character energy only π
β¨
π Author
Generated automatically by Doxygen for libstdc++ from the source code. (not a human, just a robot doing its little documentation thing, and we respect that fr π«Ά)
and that's the whole page, bestie!! source: libstdc++, page __gnu_pbds..., _Alloc >(3). go forth and construct responsibly ππ¦πΈ
π¦ 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 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