Сравнения строк и путей стали доступны на этапе компиляции
22.09.2026Операции сравнения для строк, строк в представлении C, байтовых строк и места в коде стали работать на этапе компиляции.
Зачем это нужно
Строки в константных выражениях ограничены: сравнить их на этапе компиляции было нельзя. Из-за этого проверки, которые напрашиваются как константные, приходилось выполнять во время выполнения.
Типичный случай — отладочная проверка или выбор ветки на основе строкового литерала. Теперь это можно сделать при компиляции, и результат участвует в вычислении констант: размеров структур, длин массивов, значений для встраиваемой конфигурации.
Про место в коде
Место паники — имя файла и номер строки — тоже стало сравниваемым на этапе компиляции. Это позволяет проверять в константах, что код находится в ожидаемом файле, что полезно в макросах генерации кода.
Оригинал
constify comparison traits on sliced types
Упоминаний: 1 · Просмотров: 2