Одной проблемой в больших проектах C ++ может быть время сборки. В вашем дереве зависимостей есть некоторый класс, над которым вам нужно будет поработать, но обычно вы этого избегаете, потому что каждая сборка занимает очень много времени. Вы не обязательно хотите менять его открытый интерфейс, но, возможно, вы хотите изменить его приватные члены (добавить переменную кэша, извлечь приватный метод, ...). Проблема, с которой вы сталкиваетесь, заключается в том, что в C ++ даже закрытые члены объявляются в общедоступном заголовочном файле, поэтому вашей системе сборки нужно все перекомпилировать.
Что вы делаете в этой ситуации?
Я набросал два известных мне решения, но у них обоих есть свои недостатки, и, может быть, есть лучшее, о котором я еще не подумал.