4#include <AUI/Traits/concepts.h>
5#include <AUI/Common/SharedPtr.h>
12template<
typename Base, aui::derived_from<Base>... Implementations>
14 template<aui::mapper<std::unique_ptr<Base>, std::unique_ptr<Base>> Callback>
15 static std::unique_ptr<Base> tryAllUntilSuccess(Callback&& callback) {
16 std::unique_ptr<Base> result;
17 (
false || ... || [&]() ->
bool {
19 auto i = std::make_unique<Implementations>();
20 result = callback(std::move(i));
21 return result !=
nullptr;
Helps with picking implementation specified in template arguments which does not throw an exception i...
Definition: AImplementationManager.h:13