问题描述
我正在一个项目中偶然定义一个全局TypeError: can't pickle SwigPyObject objects
变量,该变量将存储运行时的伪造值。我想指定该变量和该地图的两个函数(一个用于更新,另一个用于搜索)仅供库使用。到目前为止,我正在做的是将std::map
声明为namespace
,以便它对将完成相同功能的功能进行分组。我不知道是否有用于此目的的标准,我在最后使用namespace stored__
来暗示它不能仅用于库的派生项目中。
我应该如何指示命名空间仅供库使用?
非常感谢您的帮助。
解决方法
到目前为止,我要做的是将名称空间声明为名称空间
stored__
这是一个坏主意,因为该名称保留给语言实现。
如果仅需要访问单个翻译单元中的名称,则可以在匿名命名空间中声明它们,这将防止其他翻译单元引用这些名称。
如果不可能做到这一点,那么传统的解决方案是在库的公共命名空间中使用details
命名空间。