Yesterday I\'ve seen an interesting question here on SO about structured binding.
We can sum up it as it follows. Consider the example code below:
#inclu
I wrote this yesterday:
decltype(x), wherexis a structured binding, names the referenced type of that structured binding. In the tuple-like case, this is the type returned bystd::tuple_element, which may not be a reference even though the structured binding itself is in fact always a reference in this case. This effectively emulates the behavior of binding to a struct whose non-static data members have the types returned bytuple_element, with the referenceness of the binding itself being a mere implementation detail.