如何将变量区分为编译器构造的字符串?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