This code compiles:のstd ::ネクタイ:: make_tupleバージョンが優先されなければならないが、私は思ったんだけど
#include <iostream>
#include <tuple>
using namespace std;
tuple<int, int, int> return_tuple1() {
int a = 33;
int b = 22;
int c = 31;
return tie(a, b, c);
}
tuple<int, int, int> return_tuple2() {
int a = 33;
int b = 22;
int c = 31;
return make_tuple(a, b, c);
}
int main() {
auto a = return_tuple1();
auto b = return_tuple2();
return 0;
}
機能以来のはstd::tie
を使用して任意の問題があってはならない値でタプルを返して右? (ぶら下がっている参照はありません)
また、std :: make_tupleはコードの意図をよりよく表しています。 'std :: tie'を呼び出すコードを見て、それを' tuple'に格納すると、バグだと思うでしょう。 – SirGuy