我正在开发 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
答案 0 :(得分:2)
根命名空间没有名称,因此没有其他方法可以解决它。
相反,您将不得不重新检查您的构建更改,并且可能会考虑您所获得的错误究竟是什么。该错误可能与名称空间无关。它可能是由您的代码中的某些其他问题触发的。