我有这个代码。
CGraphicTextInstance*& prGuildNameInstance = pTextTail->pGuildNameTextInstance;
我想应用一些
auto
transform等c++ 11功能。自动后应如下所示:
auto prGuildNameInstance = pTextTail->pGuildNameTextInstance;
添加自动后,自动分配
CGraphicTextInstance
而不分配运算符*&
,我在intelisense上看到了这一点。我的问题是为什么?我应该手动添加缺少的运算符吗?像这样 ?
auto &prGuildNameInstance = pTextTail->pGuildNameTextInstance;
我的问题会破坏我的密码吗?
这会是一个问题吗?
可以自动分配他想要的内容吗?
最佳答案
auto
(通常)使用与模板推导相同的规则来推导类型。这样,它将删除引用,因此您需要明确获取引用:
auto prGuildNameInstance = pTextTail->pGuildNameTextInstance;
//prGuildNameInstance is of type CGraphicTextInstance*
auto& prGuildNameInstance = pTextTail->pGuildNameTextInstance;
//prGuildNameInstance is of type CGraphicTextInstance*&
选择基本上与任何变量相同:如果要引用,请提供引用;如果您想要一个值,则要求一个值。
关于c++ - C++ auto,不了解如何分配运算符?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36281150/