The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Релиз набора компиляторов LLVM 6.0"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Присылайте удачные настройки в раздел примеров файлов конфигурации на WIKI.opennet.ru.
. "Релиз набора компиляторов LLVM 6.0" –1 +/
Сообщение от Аноним (-), 11-Мрт-18, 18:20 
> Где бы это было полезно в чистом клиентском коде, я сходу не могу придумать.

Самый простой пример — сравнение строк:

switch (str1 <=> str2) {
// ...
}

будет значительно эффективнее, чем

if (str1 < str2) {
    // ...
} else if (str1 > str2) {
    // ...
} else {
    // ...
}

Есть, конечно, функции типа strcmp(), но:
1) для неравенства строк стандарт определяет только знак возвращаемого значения, так что вариант со switch-ем отпадает (скорее мелкое неудобство, чем реальный недостаток, но всё же);
2) сишные функции не годятся для строк, не оканчивающихся на '\0' (std::string_view и пр.), и строк, которые сами знают свою длину и могут содержать '\0' в любом месте.

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Релиз набора компиляторов LLVM 6.0, opennews, 09-Мрт-18, 00:01  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру