结构化绑定只能与某种“结构”一起使用作为返回值吗?
归还任何类/结构,例如这里的元组可以正常工作:
auto f()
{
return std::make_tuple(1,2.2);
}
有没有什么东西可以实现:
auto f() -> [int,double]
{
return { 1, 2.2 }; // maybe with or without braces arround
}
结构化绑定只能与某种“结构”一起使用作为返回值吗?
归还任何类/结构,例如这里的元组可以正常工作:
auto f()
{
return std::make_tuple(1,2.2);
}
有没有什么东西可以实现:
auto f() -> [int,double]
{
return { 1, 2.2 }; // maybe with or without braces arround
}
你不能有一个像
auto f() -> [int,double]
因为那里没有类型信息。尾随返回需要一个type-id,它被定义为type-specifier-seq abstract-declarator opt
由于您必须在返回类型中指定一个类型,您可以使用类似
auto f() -> std::tuple<int,double>
指定您要返回 aint
和double
。
另请注意,结构化绑定可用于具有公共数据成员、类似元组的对象和数组的类。