[1725989] | 1 | #include <iostream> |
---|
| 2 | #include <cstdlib> |
---|
| 3 | #include <variant> |
---|
| 4 | using namespace std; |
---|
| 5 | |
---|
| 6 | // struct S { char s[32]; }; |
---|
| 7 | // variant< int, double, S > vd; |
---|
| 8 | // variant< int, int, int > vs; |
---|
| 9 | |
---|
| 10 | // int main() { |
---|
| 11 | // cout << "sizeof vd " << sizeof( vd ) << endl; |
---|
| 12 | // vd = 3; |
---|
| 13 | // if ( holds_alternative<int>(vd) ) cout << "int " << get<int>(vd ) << endl; |
---|
| 14 | // vd = 3.5; |
---|
| 15 | // if ( holds_alternative<double>(vd) ) cout << "double " << get<double>(vd) << endl; |
---|
| 16 | // vd = (S){ "abc" }; |
---|
| 17 | // if ( holds_alternative<S>(vd) ) cout << "S.s " << get<S>(vd).s << endl; |
---|
| 18 | |
---|
| 19 | // cout << "sizeof vs " << sizeof( vs ) << endl; |
---|
| 20 | // vs = (variant<int,int,int>){ in_place_index<0>, 12 }; |
---|
| 21 | // if ( vs.index() == 0 ) cout << "posn 0 " << get<0>(vs) << endl; |
---|
| 22 | // vs = (variant<int,int,int>){ in_place_index<1>, 4 }; |
---|
| 23 | // if ( vs.index() == 1 ) cout << "posn 1 " << get<1>(vs) << endl; |
---|
| 24 | // vs = (variant<int,int,int>){ in_place_index<2>, 5 }; |
---|
| 25 | // if ( vs.index() == 2 ) cout << "posn 2 " << get<2>(vs) << endl; |
---|
| 26 | // } |
---|
| 27 | |
---|
| 28 | constexpr auto one = 0 + 1; |
---|
| 29 | const auto NUL = nullptr; |
---|
| 30 | const auto PI = 3.14159; |
---|
| 31 | const auto Plus = '+'; |
---|
| 32 | const auto Fred = "Fred"; |
---|
| 33 | const auto Mon = 0, Tue = Mon + 1, Wed = Tue + 1, Thu = Wed + 1, Fri = Thu + 1, Sat = Fri + 1, Sun = Sat + 1; |
---|
| 34 | const auto r = random(); |
---|
| 35 | |
---|
| 36 | enum E { A, B, C }; |
---|
| 37 | enum class EC : long { A, B, C }; |
---|
| 38 | |
---|
| 39 | int a1[Sun + 1], a2[C + 1]; |
---|
| 40 | |
---|
| 41 | int main() { |
---|
| 42 | const auto one = random(); |
---|
| 43 | // const int * ip = &one; |
---|
| 44 | int sa[Sun]; |
---|
| 45 | int * i = NUL; |
---|
| 46 | E e; |
---|
| 47 | // switch ( e ) { |
---|
| 48 | // case w: ; |
---|
| 49 | // } |
---|
| 50 | switch ( e ) { |
---|
| 51 | case Sat: ; |
---|
| 52 | } |
---|
| 53 | switch ( e ) { |
---|
| 54 | case C: ; |
---|
| 55 | } |
---|
| 56 | EC ec; |
---|
| 57 | switch ( ec ) { |
---|
| 58 | case EC::A: ; |
---|
| 59 | } |
---|
| 60 | EC eca[C]; |
---|
| 61 | eca[A] = EC::A; |
---|
| 62 | |
---|
| 63 | enum Week { Mon, Tue, Wed, Thu = 10, Fri, Sat, Sun }; |
---|
| 64 | Week day = Mon; |
---|
| 65 | if ( day <= Fri ) cout << "weekday" << endl; |
---|
| 66 | switch ( day ) { |
---|
| 67 | case Mon: case Tue: case Wed: case Thu: case Fri: |
---|
| 68 | cout << "weekday" << endl; break; |
---|
| 69 | case Sat: case Sun: |
---|
| 70 | cout << "weekend" << endl; break; |
---|
| 71 | } |
---|
| 72 | for ( Week d = Mon; d <= Sun; d = (Week)(d + 1) ) { |
---|
| 73 | cout << d << ' '; |
---|
| 74 | } |
---|
| 75 | cout << endl; |
---|
| 76 | } |
---|
| 77 | |
---|
| 78 | // Local Variables: // |
---|
| 79 | // compile-command: "g++ -std=c++17 test.cc" // |
---|
| 80 | // End: // |
---|