@@ -165,27 +165,51 @@ namespace kangaru {
165165
166166 template <source... Sources, source Source>
167167 inline constexpr auto make_modular_source (Source source) {
168- return modular_source<Source, kangaru::constructor_function<Sources>...>{std::move (source), kangaru::constructor_function<Sources>{}...};
168+ return modular_source<Source, kangaru::constructor_function<Sources>...>{
169+ std::move (source),
170+ kangaru::constructor_function<Sources>{}...
171+ };
169172 }
170173
171174 template <source... Sources>
172175 inline constexpr auto make_modular_source () {
173- return modular_source<none_source, kangaru::constructor_function<Sources>...>{none_source{}, kangaru::constructor_function<Sources>{}...};
176+ return modular_source<none_source, kangaru::constructor_function<Sources>...>{
177+ none_source{},
178+ kangaru::constructor_function<Sources>{}...
179+ };
174180 }
175181
176182 template <source Source, typename ... Lambdas>
177183 inline constexpr auto make_modular_source_in_place (Source source, Lambdas... lambdas) {
178- return in_place_construct{[&]{ return modular_source<Source, Lambdas...>{std::move (source), lambdas...}; }};
184+ return in_place_construct{
185+ [source = std::move (source), ...lambdas = std::move (lambdas)]() mutable {
186+ return modular_source<Source, Lambdas...>{std::move (source), lambdas...};
187+ },
188+ };
179189 }
180190
181191 template <source... Sources, source Source>
182192 inline constexpr auto make_modular_source_in_place (Source source) {
183- return in_place_construct{[&]{ return modular_source<Source, kangaru::constructor_function<Sources>...>{std::move (source), kangaru::constructor_function<Sources>{}...}; }};
193+ return in_place_construct{
194+ [source = std::move (source)]() mutable {
195+ return modular_source<Source, kangaru::constructor_function<Sources>...>{
196+ std::move (source),
197+ kangaru::constructor_function<Sources>{}...
198+ };
199+ },
200+ };
184201 }
185202
186203 template <source... Sources>
187204 inline constexpr auto make_modular_source_in_place () {
188- return in_place_construct{[&]{ return modular_source<none_source, kangaru::constructor_function<Sources>...>{none_source{}, kangaru::constructor_function<Sources>{}...}; }};
205+ return in_place_construct{
206+ [] {
207+ return modular_source<none_source, kangaru::constructor_function<Sources>...>{
208+ none_source{},
209+ kangaru::constructor_function<Sources>{}...
210+ };
211+ },
212+ };
189213 }
190214
191215 template <typename ... Modules>
0 commit comments