Использование шаблона, вероятно, не является хорошим решением, так как это приведет к созданию нового экземпляра этого блока кода в двоичном файле вашего приложения для каждого размера входной строки, которая преобразуется. Поскольку выходной тип (QString) не содержит константы времени компиляции, это означает, что в результате вы получите раздувание кода без усиления.
Лучше было бы использовать тот факт, что TBuf8<N>
наследуется от TDesC8
:
QString TBuf2QString(const TDesC8 &buf)
{
return QString::fromLocal8Bit(reinterpret_cast<const char *>(buf.Ptr()),
buf.Length());
}
TBuf<16> foo(_L("sometext"));
QString bar = TBuf2QString(foo);