''复制'来自其他变量的变量类型

问题描述 投票:2回答:1

[在c ++ 11中添加了'auto'-关键字,我想知道是否可以'复制'另一个变量的类型或函数的返回类型。

例如,在此代码中:

unsigned short x;
[...] // x is initialized with some value
for(auto i=0;i<x;i++)
{
    [...]
}

i将是int。是否可以赋予ix相同的类型,而无需手动将其声明为'unsigned short'

基本上,我正在寻找的是类似的东西:

[...]
for(type(x) i=0;i<x;i++)
[...]
c++ c++11 auto decltype
1个回答
6
投票

您正在寻找decltype specifier,c ++ 11支持。

检查实体的声明类型或表达式的类型和值类别。

您可以使用它来声明与另一个变量相同类型的变量,

for(decltype(x) i=0;i<x;i++)

或来自函数的返回类型。

unsigned short f();
//...
for(decltype(f()) i=0;i<x;i++)
© www.soinside.com 2019 - 2024. All rights reserved.