@@ -272,37 +272,38 @@ struct aggregate_initialize_tag
272272};
273273
274274template <std::size_t I, class Ti >
275- struct aggregate_initialize_overload
275+ struct no_narrowing_overload
276276{
277277 template <class T >
278- auto operator ()(Ti, T&&) -> aggregate_initialize_tag<I, Ti>
278+ auto operator ()(T&&) -> aggregate_initialize_tag<I, Ti>
279279 requires is_convertible_without_narrowing_v<T, Ti>
280280 {
281281 return {}; // silence MSVC warning
282282 }
283283};
284284
285285template <class Is , class ... Ts>
286- struct aggregate_initialize_fun ;
286+ struct no_narrowing_fun ;
287287
288288// Imaginary function FUN of https://eel.is/c++draft/variant#ctor-14
289289template <std::size_t ... Is, class ... Ts>
290- struct aggregate_initialize_fun <std::index_sequence<Is...>, Ts...>
291- : aggregate_initialize_overload <Is, Ts>...
290+ struct no_narrowing_fun <std::index_sequence<Is...>, Ts...>
291+ : no_narrowing_overload <Is, Ts>...
292292{
293- using aggregate_initialize_overload <Is, Ts>::operator ()...;
293+ using no_narrowing_overload <Is, Ts>::operator ()...;
294294};
295295
296296template <class ... Ts>
297- using aggregate_initialize_fun_for = aggregate_initialize_fun <std::index_sequence_for<Ts...>, Ts...>;
297+ using aggregate_initialize_fun_for = no_narrowing_fun <std::index_sequence_for<Ts...>, Ts...>;
298298
299299template <class Enabled , class T , class ... Ts>
300- struct aggregate_initialize_resolution {};
300+ struct no_narrowing_resolution {};
301301
302302template <class T , class ... Ts>
303- struct aggregate_initialize_resolution <
303+ struct no_narrowing_resolution <
304304 std::void_t <decltype (aggregate_initialize_fun_for<Ts...>{}(std::declval<T>(), std::declval<T>()))>, T, Ts...
305- > {
305+ >
306+ {
306307 using tag = decltype (aggregate_initialize_fun_for<Ts...>{}(std::declval<T>(), std::declval<T>()));
307308 using type = tag::type;
308309 static constexpr std::size_t index = tag::index;
@@ -314,7 +315,7 @@ struct aggregate_initialize_resolution<
314315// because they would lead to unnecessarily nested instantiation for
315316// legitimate infinite recursion errors on recursive types.
316317template <class T , class ... Ts>
317- struct aggregate_initialize_resolution : detail::aggregate_initialize_resolution <void , T, Ts...> {};
318+ struct no_narrowing_resolution : detail::no_narrowing_resolution <void , T, Ts...> {};
318319
319320} // iris
320321
0 commit comments