+/* First example of thing that we can use as a filtering criteria: a simple boolean function */
+static bool filter_speed_more_than_50Mf(simgrid::s4u::Host* host)
+{
+ return host->getSpeed() > 50E6;
+}
+
+/* Second kind of thing that we can use as a filtering criteria: a functor (=function object).
+ * This one is a bit stupid: it's a lot of boilerplate over a dummy boolean function.
+ */
+class SingleCore {
+public:
+ bool operator()(simgrid::s4u::Host* host) { return host->get_core_count() == 1; }
+};
+
+/* This functor is a bit more complex, as it saves the current state when created.
+ * Then, it allows to easily retrieve the hosts which frequency changed since the functor creation.
+ */