C++ 类型别名常量问题
C++ Type Aliasing Const Issue
我有以下代码:
using ccStr = char*;
class Tt {
private:
const char* tmp;
public:
const ccStr & str() {
return tmp;
}
};
但问题是 "const ccStr" 被评估为 "char* const" 这基本上是 tmp 无法绑定到 return 类型的原因。
我真的不明白为什么 const 被移动了......
如何在不更改 ccStr 类型别名的情况下解决此问题?
const ccStr
是一个const指针,const char *
是一个指向const char的指针
return const_cast<const ccStr >(tmp);
我有以下代码:
using ccStr = char*;
class Tt {
private:
const char* tmp;
public:
const ccStr & str() {
return tmp;
}
};
但问题是 "const ccStr" 被评估为 "char* const" 这基本上是 tmp 无法绑定到 return 类型的原因。 我真的不明白为什么 const 被移动了...... 如何在不更改 ccStr 类型别名的情况下解决此问题?
const ccStr
是一个const指针,const char *
是一个指向const char的指针
return const_cast<const ccStr >(tmp);