小编vuj*_*man的帖子

有没有一个单行将解包元组/对引用到引用中?

我经常写一些片段

int x,y,z; tie(x,y,z) = g[19];
Run Code Online (Sandbox Code Playgroud)

例如,g早先宣布的地方

vector<tuple<int,int,int>> g(100);
Run Code Online (Sandbox Code Playgroud)

问题是,也许以后我真的想要xy指向g引用的内部,并且重构是丑陋的,例如

int &x = get<0>(g[19]);
int &y = get<1>(g[19]);
int &z = get<2>(g[19]);
Run Code Online (Sandbox Code Playgroud)

有时甚至更糟,例如,如果访问是一个更复杂的表达

tuple<int,int,int> &p = g[19]; // if the rhs was actually more complicated
int &x = get<0>(p);
int &y = get<1>(p);
int &z = get<2>(p);
Run Code Online (Sandbox Code Playgroud)

是否有更好的重构,更多的是分配的风格(...)?

我理解的困难在于参考文献坚持在他们的声明中完全初始化.所以,换句话说,有没有办法在c ++中使用类似tie语法进行多变量初始化(这也会使早期的非引用用法更清晰)?

c++

23
推荐指数
2
解决办法
2896
查看次数

标签 统计

c++ ×1