I am working on a c++ project (and I'm a complete c++ n00b) that uses the root namespace to access the ::tolower
method in the following lines of code, but I have changed some build settings and am getting an error.
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());
}
The build changes are essential for most of the project, and changing these is not an option. So as a workaround, I would like to try prefixing this with the root namespace. For example:
std::transform(copy.begin(), copy.end(), copy.begin(), rootns::tolower);
Is this possible? If so, how?
Since many of you have already disregarded my ideal solution as impossible, and have asked what the error is to see if you can solve it your own way, here is the relevant portion of the error:
error: '::tolower' has not been declared
The root namespace does not have a name, so there is no other way to address it.
Instead, you're going to have to re-examine your build changes, and maybe consider what exactly the error you get says. The error might not really be about namespaces. It could have been triggered by some other problem earlier in your code.