自动类型别名

5

能否为auto创建类型别名?我尝试过使用using var = autotypedef auto var,但都报错说不允许。有什么方法吗?


12
不要这样做。代码主要是为其他人阅读而设计的。仅仅因为你更喜欢另一种语言中的某个名称而为某个东西创建自己特有的名称,会让其他C++程序员难以理解你的程序。通常最好使用惯用的命名方式。 - StoryTeller - Unslander Monica
大家可以对问题进行踩,但不要踩想法。如果您想回答这个想法,请写下您的答案。 - Asteroids With Wings
1
@AsteroidsWithWings 是的,你说得对。虽然不建议这样做,但是是允许的。 - arsdever
@AsteroidsWithWings 是的,我知道。我没有投反对票。我的评论是为了表达我对你评论的赞同。我认为问题本身是一个好主意,并且也是一个“好问题”。 - arsdever
4
@arsdever 我没有点踩,但我认为这个问题并没有太多价值:提问者并没有对C++中的auto进行任何研究,也不知道它的实际用途。这甚至可以用来证明关闭这个问题是合理的。尽管如此,我同意保留这个问题可能有帮助,因为可以让其他没有做过研究的人参考它。 - cmaster - reinstate monica
显示剩余2条评论
1个回答

16

不是类型,而是触发类型推导的关键字。

为了使其起作用,需要一些信息供其推导!这就是为什么它在带有初始化器的声明中起作用。

如果你真的想在代码中写入var并获得相同的效果,就像(比如)JavaScript中一样,你可以编写一个宏:

#define var auto

这将使“word”var表现得就像“word”auto一样。

但是,请不要那样做。这只会让你的代码更难为C++开发人员所理解,而实际上并没有为任何人提供任何实际的好处。


1
我只是好奇,是否可以不使用宏来实现,反正我也不会用它。 - DeNice

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接