1616#include < mrdocs/Metadata/Info.hpp>
1717#include < mrdocs/Metadata/Source.hpp>
1818#include < mrdocs/Metadata/Template.hpp>
19+ #include < mrdocs/Metadata/Info/Friend.hpp>
1920#include < mrdocs/Dom.hpp>
2021#include < mrdocs/Dom/LazyObject.hpp>
2122#include < mrdocs/Dom/LazyArray.hpp>
@@ -46,7 +47,6 @@ struct RecordTranche
4647 std::vector<SymbolID> StaticVariables;
4748 std::vector<SymbolID> Concepts;
4849 std::vector<SymbolID> Guides;
49- std::vector<SymbolID> Friends;
5050 std::vector<SymbolID> Usings;
5151};
5252
@@ -60,7 +60,7 @@ allMembers(RecordTranche const& T)
6060{
6161 // This is a trick to emulate views::concat in C++20
6262 return std::views::transform (
63- std::views::iota (0 , 12 ),
63+ std::views::iota (0 , 11 ),
6464 [&T](int const i) -> auto const &
6565 {
6666 switch (i) {
@@ -74,8 +74,7 @@ allMembers(RecordTranche const& T)
7474 case 7 : return T.StaticVariables ;
7575 case 8 : return T.Concepts ;
7676 case 9 : return T.Guides ;
77- case 10 : return T.Friends ;
78- case 11 : return T.Usings ;
77+ case 10 : return T.Usings ;
7978 default : throw std::out_of_range (" Invalid index" );
8079 }
8180 }
@@ -102,7 +101,6 @@ tag_invoke(
102101 io.map (" staticVariables" , dom::LazyArray (I.StaticVariables , domCorpus));
103102 io.map (" concepts" , dom::LazyArray (I.Concepts , domCorpus));
104103 io.map (" guides" , dom::LazyArray (I.Guides , domCorpus));
105- io.map (" friends" , dom::LazyArray (I.Friends , domCorpus));
106104 io.map (" usings" , dom::LazyArray (I.Usings , domCorpus));
107105}
108106
@@ -295,8 +293,14 @@ struct RecordInfo final
295293 */
296294 std::vector<SymbolID> Derived;
297295
296+ /* * Lists of members.
297+ */
298298 RecordInterface Interface;
299299
300+ /* * List of friends.
301+ */
302+ std::vector<FriendInfo> Friends;
303+
300304 // --------------------------------------------
301305
302306 explicit RecordInfo (SymbolID const & ID) noexcept
@@ -354,6 +358,7 @@ tag_invoke(
354358 io.map (" derived" , dom::LazyArray (I.Derived , domCorpus));
355359 io.map (" interface" , I.Interface );
356360 io.map (" template" , I.Template );
361+ io.map (" friends" , dom::LazyArray (I.Friends , domCorpus));
357362}
358363
359364/* * Map the RecordInfo to a @ref dom::Value object.
0 commit comments