[C++][std=17]结构化绑定困惑

以下代码:

#include <iostream>
#include <type_traits>

struct MyStruct {
    int a{1};
    int b{0};
}ms;

int main() {
    auto &[v, u] = ms;
    std::cout << std::is_same<decltype(v), int>::value << std::endl;
    std::cout << std::is_same<decltype(v), int&>::value << std::endl;
}

在gcc version = 11.2的输出如下:

1
0

让人诧异,这样绑定之后,是否可以看作真正意义上别名了?

c++
145 views
Comments
登录后评论
Sign In
·

cppreference 上第二句话:

类似引用,结构化绑定是既存对象的别名。不同于引用的是,结构化绑定的类型不必为引用类型。