Мне нравится собирать свой код с использованием -wsuggest-final-types и -wsuggest-final-methods , чтобы быть предупрежденными о возможностях, где основное слово может быть использовано, чтобы позволить компилятору оптимизировать более агрессивно.
Иногда иногда, хотя предложения неверны - например, у меня есть база класса с виртуальным ~ base () деструктором, который используется полиморфически в другом проекте, и GCC предполагает мне, что базовый может быть отмечен как окончательный . Компилятор, который базовый используется полиморфически и не должен быть помечен как окончательный ?
Единственный способ, которым я могу придумать, это использование #pragma , но я считаю, что он загроможден и сложно читать. Приготовлено/приложение к объявлению класса/метода.
Подробнее здесь: https://stackoverflow.com/questions/353 ... -types-and