42 requires (T&& obj, std::string str, std::vector<std::string> vStr) {
43 { obj.hasCustomComponent(str) } -> std::same_as<bool>;
45 obj.template isCustomComponentOfType<int>(str)
46 } -> std::same_as<bool>;
47 { obj.customComponentType(str) } -> std::same_as<std::type_index>;
49 obj.template customComponentNamesOfType<int>()
50 } -> std::same_as<
decltype(vStr)>;
52 { obj.template customComponent<int>(str) } -> std::convertible_to<int>;
56 { obj.template customComponent<int>(str) } -> std::same_as<int&>;