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