Сравнения строк и путей стали доступны на этапе компиляции

22.09.2026

Операции сравнения для строк, строк в представлении C, байтовых строк и места в коде стали работать на этапе компиляции.

Зачем это нужно

Строки в константных выражениях ограничены: сравнить их на этапе компиляции было нельзя. Из-за этого проверки, которые напрашиваются как константные, приходилось выполнять во время выполнения.

Типичный случай — отладочная проверка или выбор ветки на основе строкового литерала. Теперь это можно сделать при компиляции, и результат участвует в вычислении констант: размеров структур, длин массивов, значений для встраиваемой конфигурации.

Про место в коде

Место паники — имя файла и номер строки — тоже стало сравниваемым на этапе компиляции. Это позволяет проверять в константах, что код находится в ожидаемом файле, что полезно в макросах генерации кода.

Оригинал

constify comparison traits on sliced types

Упоминаний: 1 · Просмотров: 2