28std::string to_string(
const std::vector<T> & list)
32 for (
const auto & elem : list)
39 ss.seekp(-2, std::ios_base::end);
46std::vector<std::string> get_names(
const std::vector<T> & handles)
48 std::set<std::string> names;
50 handles.cbegin(), handles.cend(), std::inserter(names, names.end()),
51 [](
const auto & handle) { return handle.get_prefix_name(); });
52 return std::vector<std::string>(names.begin(), names.end());
56std::vector<T> get_ordered_handles(
57 const std::vector<T> & unordered_handles,
const std::vector<std::string> & names,
58 const std::string & interface_type)
60 std::vector<T> result;
61 for (
const auto & name : names)
64 unordered_handles.cbegin(), unordered_handles.cend(), std::back_inserter(result),
65 [&](
const auto & handle)
67 return (handle.get_prefix_name() == name) &&
68 (handle.get_interface_name() == interface_type) && handle;