简述:在gcc或clang中是否有一种方法可以弃用命名空间?
详述:
多年来,我们一直在一个总称的命名空间中积累各种东西。现在我们决定对其进行整理,并将该命名空间拆分为适当命名的命名空间;因此:
namespace util
{
uint32_t codecID( const char * name ) ;
void alignStrings( std::vector< std::string > * strings ) ;
}
应该变成
namespace codec
{
uint32_t codecID( const char * name ) ;
}
namespace fmt
{
void alignStrings( std::vector< std::string > * strings ) ;
}
为了增加乐趣,旧命名空间在几个包含文件中定义。而且其中的所有内容都是内联/模板代码;因此没有与之相关联的库。
显而易见的解决方案是将旧命名空间中的所有定义复制到新命名空间中,并逐个将旧命名空间中的所有内容标记为已弃用。
我们不能仅仅重命名命名空间而不破坏几个项目。
现在我想知道是否有更好的方法来做这样的事情,比如标记使用util命名空间的内容为已弃用。
我们使用gcc 4.7.3作为生产编译器,但构建和测试针对clang以尝试捕获gcc特定问题;因此,在任何这些编译器上工作的东西都会有所帮助。
std=c++11
进行编译时,libstdc++ 会使用它来处理 tr1/... 标头文件,因此它们不会失去任何漂亮的标头文件名。 - eerorika