C++ auto ,不明白如何分配运算符?
C++ auto , don't understand how assign operators?
我有这个代码。
CGraphicTextInstance*& prGuildNameInstance = pTextTail->pGuildNameTextInstance;
我想应用一些 c++11 功能,例如 auto
转换。
auto 之后应该是这样的:
auto prGuildNameInstance = pTextTail->pGuildNameTextInstance;
添加自动后,自动分配只是 CGraphicTextInstance
没有运算符 *&
我用智能感知看到了这个。
我的问题是为什么?我应该手动添加缺失的运算符吗?像这样?
auto &prGuildNameInstance = pTextTail->pGuildNameTextInstance;
我的问题是这会损坏我的代码吗?
这会是个问题吗?
可以让自动分配他想要的吗?
auto
(大部分)使用与模板推导相同的规则来推导类型。因此,它将删除引用,因此您需要明确引用:
auto prGuildNameInstance = pTextTail->pGuildNameTextInstance;
//prGuildNameInstance is of type CGraphicTextInstance*
auto& prGuildNameInstance = pTextTail->pGuildNameTextInstance;
//prGuildNameInstance is of type CGraphicTextInstance*&
选择与任何变量基本相同:要参考,请参考;要参考,请参考。如果你想要一个价值,要求一个价值。
我有这个代码。
CGraphicTextInstance*& prGuildNameInstance = pTextTail->pGuildNameTextInstance;
我想应用一些 c++11 功能,例如 auto
转换。
auto 之后应该是这样的:
auto prGuildNameInstance = pTextTail->pGuildNameTextInstance;
添加自动后,自动分配只是 CGraphicTextInstance
没有运算符 *&
我用智能感知看到了这个。
我的问题是为什么?我应该手动添加缺失的运算符吗?像这样?
auto &prGuildNameInstance = pTextTail->pGuildNameTextInstance;
我的问题是这会损坏我的代码吗? 这会是个问题吗? 可以让自动分配他想要的吗?
auto
(大部分)使用与模板推导相同的规则来推导类型。因此,它将删除引用,因此您需要明确引用:
auto prGuildNameInstance = pTextTail->pGuildNameTextInstance;
//prGuildNameInstance is of type CGraphicTextInstance*
auto& prGuildNameInstance = pTextTail->pGuildNameTextInstance;
//prGuildNameInstance is of type CGraphicTextInstance*&
选择与任何变量基本相同:要参考,请参考;要参考,请参考。如果你想要一个价值,要求一个价值。