QStringLiteral — это новый макрос, введенный в Qt 5, для создания объектов QString из строковых литералов. (Строковые литералы — это строки внутри кавычек в исходном коде). В этой статье я объясню, что там внутри и как они реализованы.
Выводы
Разрешите начать с информации о том, когда нужно пользоваться макросом. Если есть необходимость инициализировать объект QString из строкового литерала в Qt5, то стоит делать так:
- В большинстве случаев QStringLiteral(«foo») если он действительно будет преобразован в QString.
- QLatin1String(«foo») если он будет использоваться в перегруженных QLatin1String методах. (например operator==, operator+, startWith, replace, ...)
Я привел выводы в самом начале статьи для тех, кому не интересны технические детали.
Если интересно узнать, как работает QStringLiteral, читайте дальше.
Читать полностью »