我有这个代码。

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/

10-11 23:07
查看更多