У меня есть ряд Templatic и инлайн функции, определенные в заголовка файла (назовем его head.h
). В настоящее время эти функции используют некоторые глобальные переменные, объявленные с extern
в том же заголовке и определенные где-то в одном .cpp.C++ переменная сфера заголовка
Все работает нормально, но я бы ограничил область глобальных переменных только заголовком, где они определены.
Другими словами каждый .h или .cpp, который включает в свой head.h не сможет увидеть такие глобалам.
Любой способ достичь этого результата?
Почему вы хотите сделать это?Если несколько включений должны использовать функции, которые, в свою очередь, нуждаются в доступе к одной и той же глобальной переменной, как вы хотите, чтобы инсайдеры не видели и не использовали глобальную переменную? –
@WernerHenze, потому что я не хочу переменное загрязнение. эти переменные должны использоваться только в этом заголовке. если функции не были встроенными, я бы определил свои глобальные переменные в cpp как статические, ограничив их область действия до этого cpp – willy
или анонимного пространства имен, как кто-то предложил ниже – willy