27std::string to_string(
const std::vector<T> & list)
31 for (
const auto & elem : list)
38 ss.seekp(-2, std::ios_base::end);
45std::vector<std::string> get_names(
const std::vector<T> & handles)
47 std::set<std::string> names;
49 handles.cbegin(), handles.cend(), std::inserter(names, names.end()),
50 [](
const auto & handle) { return handle.get_prefix_name(); });
51 return std::vector<std::string>(names.begin(), names.end());
55std::vector<T> get_ordered_handles(
56 const std::vector<T> & unordered_handles,
const std::vector<std::string> & names,
57 const std::string & interface_type)
59 std::vector<T> result;
60 for (
const auto & name : names)
63 unordered_handles.cbegin(), unordered_handles.cend(), std::back_inserter(result),
64 [&](
const auto & handle)
66 return (handle.get_prefix_name() == name) &&
67 (handle.get_interface_name() == interface_type) && handle;