|
5640 | 5640 | \begin{codeblock}
|
5641 | 5641 | int arr[] = {1, 2, 3};
|
5642 | 5642 | auto [a1, a2, a3] = arr;
|
5643 |
| -void fn(); |
| 5643 | +[[=1]] void fn(int n); |
5644 | 5644 | enum Enum { A };
|
5645 | 5645 | using Alias = int;
|
5646 | 5646 | struct B {};
|
|
5651 | 5651 | template<auto> struct TCls {};
|
5652 | 5652 | template<auto> void TFn();
|
5653 | 5653 | template<auto> int TVar;
|
| 5654 | +template<auto N> using TAlias = TCls<N>; |
5654 | 5655 | template<auto> concept Concept = requires { true; };
|
5655 | 5656 | namespace NS {};
|
5656 | 5657 | namespace NSAlias = NS;
|
|
5662 | 5663 | constexpr auto r3 = ^^arr; // represents a variable
|
5663 | 5664 | constexpr auto r4 = ^^a3; // represents a structured binding
|
5664 | 5665 | constexpr auto r5 = ^^fn; // represents a function
|
5665 |
| -constexpr auto r6 = ^^Enum::A; // represents an enumerator |
5666 |
| -constexpr auto r7 = ^^Alias; // represents a type alias |
5667 |
| -constexpr auto r8 = ^^S; // represents a type |
5668 |
| -constexpr auto r9 = ^^S::mem; // represents a class member |
5669 |
| -constexpr auto r10 = std::meta::members_of(^^S, ctx)[1]; // represents an unnamed bit-field |
5670 |
| -constexpr auto r11 = ^^TCls; // represents a class template |
5671 |
| -constexpr auto r12 = ^^TFn; // represents a function template |
5672 |
| -constexpr auto r13 = ^^TVar; // represents a variable template |
5673 |
| -constexpr auto r14 = ^^Concept; // represents a concept |
5674 |
| -constexpr auto r15 = ^^NSAlias; // represents a namespace alias |
5675 |
| -constexpr auto r16 = ^^NS; // represents a namespace |
5676 |
| -constexpr auto r17 = std::meta::bases_of(^^S, ctx)[0]; // represents a direct base class relationship |
5677 |
| -constexpr auto r18 = |
| 5666 | +constexpr auto r6 = std::meta::parameters_of(^^fn)[0]; // represents a function parameter |
| 5667 | +constexpr auto r7 = ^^Enum::A; // represents an enumerator |
| 5668 | +constexpr auto r8 = std::meta::annotations_of(^^fn)[0]; // represents an annotation |
| 5669 | +constexpr auto r9 = ^^Alias; // represents a type alias |
| 5670 | +constexpr auto r10 = ^^S; // represents a type |
| 5671 | +constexpr auto r11 = ^^S::mem; // represents a class member |
| 5672 | +constexpr auto r12 = std::meta::members_of(^^S, ctx)[1]; // represents an unnamed bit-field |
| 5673 | +constexpr auto r13 = ^^TCls; // represents a class template |
| 5674 | +constexpr auto r14 = ^^TFn; // represents a function template |
| 5675 | +constexpr auto r15 = ^^TVar; // represents a variable template |
| 5676 | +constexpr auto r16 = ^^TAlias; // represents an alias template |
| 5677 | +constexpr auto r17 = ^^Concept; // represents a concept |
| 5678 | +constexpr auto r18 = ^^NSAlias; // represents a namespace alias |
| 5679 | +constexpr auto r19 = ^^NS; // represents a namespace |
| 5680 | +constexpr auto r20 = std::meta::bases_of(^^S, ctx)[0]; // represents a direct base class relationship |
| 5681 | +constexpr auto r21 = |
5678 | 5682 | std::meta::data_member_spec(^^int, {.name="member"}); // represents a data member description
|
5679 | 5683 | \end{codeblock}
|
5680 | 5684 | \end{example}
|
|
0 commit comments