mirror of
https://github.com/bolero-MURAKAMI/Sprout
synced 2025-08-03 12:49:50 +00:00
[Destructive changes] add sprout::string constructor (already not an aggregate)
This commit is contained in:
parent
cb1077d247
commit
baf8995e81
17 changed files with 466 additions and 301 deletions
|
@ -122,47 +122,46 @@ namespace sprout {
|
|||
template<typename Elem, typename Traits = sprout::char_traits<Elem> >
|
||||
inline SPROUT_CONSTEXPR sprout::basic_string<Elem, 36, Traits>
|
||||
to_string_of(sprout::uuids::uuid const& u) {
|
||||
return sprout::basic_string<Elem, 36, Traits>{
|
||||
{
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[0] >> 4) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[0]) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[1] >> 4) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[1]) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[2] >> 4) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[2]) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[3] >> 4) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[3]) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::dash,
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[4] >> 4) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[4]) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[5] >> 4) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[5]) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::dash,
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[6] >> 4) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[6]) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[7] >> 4) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[7]) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::dash,
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[8] >> 4) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[8]) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[9] >> 4) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[9]) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::dash,
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[10] >> 4) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[10]) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[11] >> 4) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[11]) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[12] >> 4) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[12]) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[13] >> 4) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[13]) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[14] >> 4) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[14]) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[15] >> 4) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[15]) & 0x0F]
|
||||
},
|
||||
36
|
||||
};
|
||||
typedef sprout::detail::string_construct_access<Elem, 36, Traits> access_type;
|
||||
return access_type::raw_construct(
|
||||
36,
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[0] >> 4) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[0]) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[1] >> 4) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[1]) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[2] >> 4) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[2]) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[3] >> 4) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[3]) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::dash,
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[4] >> 4) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[4]) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[5] >> 4) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[5]) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::dash,
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[6] >> 4) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[6]) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[7] >> 4) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[7]) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::dash,
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[8] >> 4) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[8]) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[9] >> 4) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[9]) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::dash,
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[10] >> 4) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[10]) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[11] >> 4) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[11]) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[12] >> 4) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[12]) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[13] >> 4) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[13]) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[14] >> 4) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[14]) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[15] >> 4) & 0x0F],
|
||||
sprout::uuids::detail::digits<Elem>::table[(u[15]) & 0x0F]
|
||||
);
|
||||
}
|
||||
//
|
||||
// to_string
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue