'Copy' 来自其他变量的变量类型
'Copy' variable type from other variable
在 c++11 中添加了 'auto'-关键字,我想知道是否可以 'copy' 另一个变量的类型,或者 return 类型一个函数。
例如,在这段代码中:
unsigned short x;
[...] // x is initialized with some value
for(auto i=0;i<x;i++)
{
[...]
}
i 将是一个 int。是否可以给 i 与 x 相同的类型,而无需手动将其声明为 'unsigned short'?
基本上,我正在寻找的是:
[...]
for(type(x) i=0;i<x;i++)
[...]
您正在寻找 decltype specifier,它受 c++11 的支持。
Inspects the declared type of an entity or the type and value category of an expression.
你可以用它来声明同类型的另一个变量,
for(decltype(x) i=0;i<x;i++)
或来自 return 类型的函数。
unsigned short f();
//...
for(decltype(f()) i=0;i<x;i++)
在 c++11 中添加了 'auto'-关键字,我想知道是否可以 'copy' 另一个变量的类型,或者 return 类型一个函数。
例如,在这段代码中:
unsigned short x;
[...] // x is initialized with some value
for(auto i=0;i<x;i++)
{
[...]
}
i 将是一个 int。是否可以给 i 与 x 相同的类型,而无需手动将其声明为 'unsigned short'?
基本上,我正在寻找的是:
[...]
for(type(x) i=0;i<x;i++)
[...]
您正在寻找 decltype specifier,它受 c++11 的支持。
Inspects the declared type of an entity or the type and value category of an expression.
你可以用它来声明同类型的另一个变量,
for(decltype(x) i=0;i<x;i++)
或来自 return 类型的函数。
unsigned short f();
//...
for(decltype(f()) i=0;i<x;i++)