考慮這樣一個例子:結構化綁定的decltype(auto)應該是一個引用嗎?
#include <iostream>
#include <type_traits>
#include <tuple>
int main() {
auto tup = std::make_tuple(1, 2);
auto [ a, b ] = tup;
decltype(auto) e = a;
std::cout << std::boolalpha << std::is_reference_v<decltype(e)> << std::endl;
}
clang(輸出:false
)和gcc(輸出:true
)在這個簡單的例子不同意。考慮到例如this Q&Ase
應該是一個參考或是一個海灣合作委員會的錯誤?或者,也許代碼是不合格的?