Up until C++23, functions, classes, function and class templates could be declared as friends. Starting from C++26, thanks to Jody Hagins’ and Arthur O’Dwyer’s proposal, P2893R3, friendship can also be granted to a pack of types. Who does a pack of friends look like? In earlier standards, we must declare friend class templates one by one, just like in the example below. 1 2 3 4 5 6 template class Foo { friend T; friend U; }; Note the default values for the template parameters. That make...