Как я могу получить доступ к корневому пространству имен по имени — вместо простого `::`?

Я работаю над C ++ проект (и я полный c ++ n00b), который использует корневое пространство имен для доступа к ::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());
}

Изменения в сборке необходимы для большей части проекта, и изменить их нельзя. В качестве обходного пути, я хотел бы попробовать префикс этого с корневым пространством имен. Например:

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

Это возможно? Если так, то как?

Поскольку многие из вас уже проигнорировали мое идеальное решение как невозможное и спросили, в чем заключается ошибка, чтобы увидеть, можете ли вы решить его по-своему, вот соответствующая часть ошибки:

error: '::tolower' has not been declared

-1

Решение

Корневое пространство имен не имеет имени, поэтому нет другого способа обратиться к нему.

Вместо этого вам придется пересмотреть изменения в сборке и, возможно, подумать, что именно говорит об ошибке. Ошибка может не быть связана с пространствами имен. Это могло быть вызвано какой-то другой проблемой ранее в вашем коде.

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector