class QString { QStringData *d; }class QStringData { QAtomicInt ref; qptrdiff offset; int size; int alloc; } // qptrdiff для литералов
class QString { QChar *begin; int size; QStringData *d; } // для литералов уже дифф уже не нужен, d==nullptrclass QStringData { QAtomicInt ref; QChar *begin; int alloc; }
C++ (Qt)QString src("a b c ...");QString sub = SomeMagic(src);
QStringRef ref = str.midRef(1, 5);QString copy(ref);copy.trim();
class QStringView { QChar *begin, QChar *end; }