如何將變量區分爲編譯器構造的字符串?C++ 11 - 區分右值指針
例如,而右值"Hello, World"
的類型爲const char*
。 const char*
本身並不意味着指針不能被改變。一個char* const
指針不能改變,但這不是編譯器構造的。
這是否意味着,對於任何包含const char*
的容器,數據應該通過C++的移動語義以外的方式複製?有沒有什麼辦法可以移動編譯器構造的字符串,並讓所有其他字符串獨立?
例如,在GCC 4.5.2中,返回類型int
而不是int&
的方法被視爲返回int&&
。我不知道實際的標準是否應該是這樣,但這就是GCC目前所做的。
編輯:爲了澄清,我的意思是應該複製指針指向的實際內存。這意味着必須分配新的內存,並且指針中的數據應該被複制到新的位置。
我不太瞭解「編輯」。你能澄清嗎? – 2011-03-18 00:55:53