yang131

导航

c++17 structure binding test

 1 /*test for struct binding*/
 2 
 3 #include <string>
 4 #include <iostream>
 5 using namespace std;
 6 //命名空间 可以缩写为A::B
 7 namespace NA::NB
 8 {
 9     class Data
10     {
11     public:
12         float a;
13         int b;
14         string data;
15     };
16     Data ff()
17     {
18         //保证声明时 属性是可访问的
19         return { 23.0f,41,"abcdef" };
20     }
21 }
22 
23 int main()
24 {
25     {
26         //这里可以使A,B,C 可以用来捕获
27         //作用于当前范围
28         auto[A, B, C] = NA::NB::ff();
29         //[[std:cout]]
30         cout << A << endl;
31         cout << B << endl;
32         cout << C << endl;
33     }
34     using namespace NA::NB;
35     //无法使用auto
36     Data obj = { 23.0f,41,"abcdef" };
37     //编译期断言 ,如果不满足条件则会error
38     //static_assert(false,"这个地方编译不通过");
39     static_assert(true, "这个地方编译不通过");
40     return 0;
41 }

 

posted on 2020-08-27 11:05  NoNight  阅读(280)  评论(0编辑  收藏  举报