如何通过名称访问根命名空间 - 而不仅仅是`::`?

时间:2012-11-05 15:33:51

标签: c++ namespaces cocos2d-x

我正在开发 c ++ 项目(我是一个完整的c ++ n00b),它使用root命名空间来访问以下代码行中的::tolower方法,但是我已经更改了一些构建设置并且收到错误。

CCString * CCBReader::toLowerCase(CCString * pString) {
    std::string copy(pString->getCString());
    std::transform(copy.begin(), copy.end(), copy.begin(), ::tolower);
    return CCString::create(copy.c_str());
}

构建更改对于项目的大部分内容都是必不可少的,并且不能更改这些更改。因此,作为一种解决方法,我想尝试使用root命名空间作为前缀。例如:

std::transform(copy.begin(), copy.end(), copy.begin(), rootns::tolower);

这可能吗?如果是这样,怎么样?

由于你们许多人已经将我理想的解决方案视为不可能,并且已经询问错误是什么,看你能否以自己的方式解决,这里是错误的相关部分:

error: '::tolower' has not been declared

1 个答案:

答案 0 :(得分:2)

根命名空间没有名称,因此没有其他方法可以解决它。

相反,您将不得不重新检查您的构建更改,并且可能会考虑您所获得的错误究竟是什么。该错误可能与名称空间无关。它可能是由您的代码中的某些其他问题触发的。