В составе C ++ нет.
Конечно, есть хитрости.
Одним из таких приемов является объявление функции как можно локально вблизи текущей точки использования.
- Просто объявив его в верхней части исходного файла, используйте его, прямо под включением
- Объявление (и определение) как
static
в верхней части исходного файла, который его использует, лучше для наглядности, но подразумевает дублирование
Это защита от неясности, неизвестно, что она так хороша, но я бы посчитал это приемлемым в этом случае (с толстым комментарием в верхней части функции).
Другие решения включают #pragma warning
в заголовке (не очень) или атрибут deprecated
, но это вызовет предупреждения для текущих применений, это может быть проблематично (загрязняет выходные данные сборки). И если людям не надоедают предупреждения для текущего использования, они не будут беспокоиться и о новых предупреждениях, что не является хорошей привычкой!
Теперь есть и другие решения.
Вы можете просто написать хук, который сканирует исходные файлы и подсчитывает количество вхождений.
grep -r "deprecated_func" include src | wc -l
Этот хук может быть интегрирован либо как часть процесса сборки, либо как хук перед фиксацией в вашей версии системы. Обязательно уменьшите количество разрешенных вхождений, как только вы избавитесь от одной функции.
Примечание: вы также можете использовать атрибут deprecated
с фильтром на выходе компилятора. Но это не считается для -Werror
.