如何指示名称空间仅供库使用?

问题描述

我正在一个项目中偶然定义一个全局TypeError: can't pickle SwigPyObject objects 变量,该变量将存储运行时的伪造值。我想指定该变量和该地图的两个函数(一个用于更新,另一个用于搜索)仅供库使用。到目前为止,我正在做的是将std::map声明为namespace,以便它对将完成相同功能的功能进行分组。我不知道是否有用于此目的的标准,我在最后使用namespace stored__来暗示它不能仅用于库的派生项目中。

我应该如何指示命名空间仅供库使用?

非常感谢您的帮助。

解决方法

到目前为止,我要做的是将名称空间声明为名称空间stored__

这是一个坏主意,因为该名称保留给语言实现。

如果仅需要访问单个翻译单元中的名称,则可以在匿名命名空间中声明它们,这将防止其他翻译单元引用这些名称。

如果不可能做到这一点,那么传统的解决方案是在库的公共命名空间中使用details命名空间。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...