14 #include <QLatin1String> 47 template<
typename Assoc>
54 auto begin ()
const {
return Assoc_.keyValueBegin (); }
55 auto end ()
const {
return Assoc_.keyValueEnd (); }
58 return Range { std::forward<Assoc> (assoc) };
61 template<
typename Assoc>
68 auto begin ()
const {
return Assoc_.keyBegin (); }
69 auto end ()
const {
return Assoc_.keyEnd (); }
72 return Range { std::forward<Assoc> (assoc) };
89 return QByteArray::fromRawData (view.data (),
static_cast<int> (view.size ()));
104 return { view.data (),
static_cast<int> (view.size ()) };
114 return { arr.constData (),
static_cast<size_t> (arr.size ()) };
117 template<
typename T,
typename S>
120 const auto pos = str.indexOf (c);
124 return { str.left (pos), str.mid (pos + 1) };
130 ptr.release ()->setParent (&parent);
135 return QString::fromRawData (sv.data (), sv.size ());
141 constexpr QLatin1String
operator"" _ql (
const char *str, std::size_t size)
noexcept 143 return QLatin1String { str,
static_cast<int> (size) };
146 constexpr QStringView
operator"" _qsv (
const char16_t *str, std::size_t size)
noexcept 148 return QStringView { str,
static_cast<qsizetype
> (size) };
151 inline QByteArray
operator"" _qba (
const char *str, std::size_t size)
noexcept 153 return QByteArray::fromRawData (str, static_cast<int> (size));
156 template<Util::CtString S>
157 QString
operator""_qs ()
159 return Util::ToString<S> ();
std::string_view AsStringView(const QByteArray &arr) noexcept
Create a std::string_view referring the data within a QByteArray.
auto Stlize(Assoc &&assoc) noexcept
Converts an Qt's associative sequence assoc to an STL-like iteratable range.
auto StlizeKeys(Assoc &&assoc) noexcept
std::pair< T, T > BreakAt(const T &str, S c) noexcept
void ReleaseInto(std::unique_ptr< T > &&ptr, QObject &parent)
QByteArray AsByteArray(std::string_view view) noexcept
Convert the view into a QByteArray without copying.
auto Tup2 &&tup2 noexcept
QString UnsafeFromView(QStringView sv)