![](/img/trans.png)
[英]Can I simply call a constructor on allocated memory, instead of placement new?
[英]How can I access the root namespace by name - instead of simply `::`?
我正在研究一個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
根名稱空間沒有名稱,因此沒有其他方法可以解決它。
取而代之的是,您將不得不重新檢查您的構建更改,並可能考慮所得到的錯誤究竟是什么。 該錯誤可能並非真的與名稱空間有關。 它可能是由您的代碼前面的其他問題觸發的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.