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