За 15 лет я создал свой собственный "фреймворк", который состоит из нескольких классов и модулей.
Например:
Strings (contains wrappers for string functions)
Conversions (contains wrappers for conversions)
IO (contains wrappers for IO operations)
Environment (contains Windows environment things9
Windows (deals with currently open windows on Windows)
OEM (contains OEM information for all of my apps)
License (contains things to license my software)
AlphaWindow (contains stuff to display an topmost alpha window)
Я создал их таким образом, чтобы они работали как можно более независимо друг от друга, чтобы я мог подключить их, если они мне понадобятся.
Перекрестных ссылок почти нет.
Однако среди 500 функций есть еще 10 перекрестных ссылок, от которых я просто не могу избавиться.
Из-за этого, когда я создаю новый проект, я все еще вынужден добавить всю свою инфраструктуру.
Действительно ужасный способ решить эту проблему - использовать заглушки.
Например, мой класс "Strings" ссылается на "Conversions" 10 раз.
Теперь, если один проект на самом деле не нуждается в «Conversions», но нуждается в «Strings», я иногда делаю класс-заглушку «Conversions» и добавляю заглушки для этих 10 функций, которые требует «Strings», чтобы мое приложение все еще компилировалось.
Есть ли лучше выглядящая альтернатива этим заглушкам?
Я не особо разбираюсь в C ++, но, полагаю, люди на C ++ довольно часто сталкиваются с этой проблемой.
Спасибо.