Это зависит от того, что вы считаете «общедоступным представлением».
Если у вас есть код, разбросанный по нескольким исходным файлам, то вам не повезет, если вы захотите скрыть внутренние символы длялинкер.Статическая библиотека на самом деле является архивом отдельных объектных файлов, поэтому все они должны обрабатываться компоновщиком при связывании библиотеки с приложением.
Если библиотека в большой степени основана на шаблонах, вам тоже не повезло.Компилятор для конечной программы должен иметь возможность видеть все соответствующие шаблоны, поэтому вы не сможете скрыть их.
Если библиотека состоит из одного исходного файла, вы можете использовать анонимное пространство имен, чтобы получить всевнутренние символы, такие непроизносимые имена, что их нельзя использовать для всех практических целей.
Если вы боитесь, что люди слишком многому научатся из названий внутренних символов, то либо не используйте такие описательные имена, либо запускайтекод через обфускатор перед сборкой релиза.