Я поддерживаю библиотеку C ++, которая часто использует const std::string&
аргументы в своем API. Однако я получил несколько пользовательских запросов на переключение на std::string_view
, чтобы помочь повысить эффективность, которая была бы невозможна с текущим API.
Я подумываю просто заменить все экземпляры аргументов const std::string&
на std::string_view
(возможно, с проверкой функции, которая проверяет, что std::string_view
доступно). Это нарушит обратную совместимость для любого из моих пользователей? Я попробовал простую замену, и она, похоже, ничего не сломала в моем коде или тестах, но, конечно, это не исчерпывающая проверка.
Я понимаю, что это сломает некоторый код, который зависит от точные сигнатуры функций для моей библиотеки. Для простоты предположим, что я не позволяю пользователям зависеть от точных сигнатур / аргументов типов для моих функций.