簡體   English   中英

如何通過名稱訪問根名稱空間-而不是簡單的`::`?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM