6
爲什麼std :: tuple會分解爲右值引用?爲什麼std :: tuple會分解爲右值引用
#include <tuple>
template <typename, typename> struct same_type;
template <typename T> struct same_type<T, T> {};
void foo() {
std::tuple tuple(1, 'a', 2.3, true);
auto[i, c, d, b] = tuple;
same_type<decltype(i), int &&>{};
same_type<decltype(c), char &&>{};
same_type<decltype(d), double &&>{};
same_type<decltype(b), bool &&>{};
}
這個編譯沒有錯誤使用gcc主幹。 我本來會期待簡單的類型,例如
same_type<decltype(i), int>{};
謝謝。我已重新打開https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78358 – octoploid