我正在使用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());
}
構建更改對於大多數項目都很重要,並且更改這些不是一個選項。所以作爲一種解決方法,我想嘗試在root命名空間中添加前綴。例如:
std::transform(copy.begin(), copy.end(), copy.begin(), rootns::tolower);
這可能嗎?如果是這樣,怎麼樣?
由於許多你已經不理會我理想的解決方案是不可能的,並要求誤差,看是否可以解決它自己的方式是什麼,這裏是錯誤的相關部分:
error: '::tolower' has not been declared
有什麼錯誤? –
這並不能解釋發生了什麼變化,也沒有解釋錯誤是什麼。建議的解決方案無法工作,而且很可能無法解決任何問題。 –
'::'*是*根名稱空間,按名稱和完全限定...你得到了什麼樣的錯誤? –