+ class ActivityImpl;
+ using ActivityImplPtr = boost::intrusive_ptr<ActivityImpl>;
+ XBT_PUBLIC void intrusive_ptr_add_ref(ActivityImpl* activity);
+ XBT_PUBLIC void intrusive_ptr_release(ActivityImpl* activity);
+
+ class CommImpl;
+ using CommImplPtr = boost::intrusive_ptr<CommImpl>;
+ class ExecImpl;
+ using ExecImplPtr = boost::intrusive_ptr<ExecImpl>;
+ class IoImpl;
+ using IoImplPtr = boost::intrusive_ptr<IoImpl>;
+ class MutexImpl;
+ using MutexImplPtr = boost::intrusive_ptr<MutexImpl>;
+ class RawImpl;
+ using RawImplPtr = boost::intrusive_ptr<RawImpl>;
+ class SleepImpl;
+ using SleepImplPtr = boost::intrusive_ptr<SleepImpl>;
+
+ class MailboxImpl;
+}
+namespace lmm {
+class Element;
+class Variable;
+class Constraint;
+class ConstraintLight;
+class System;
+}
+namespace resource {
+class Action;
+class Model;
+class Resource;
+class TraceEvent;
+}
+namespace routing {
+class ClusterCreationArgs;
+class LinkCreationArgs;
+class NetPoint;
+class NetZoneImpl;
+class RouteCreationArgs;
+}
+}
+namespace simix {
+ class ActorImpl;
+ using ActorImplPtr = boost::intrusive_ptr<ActorImpl>;
+ class Host;
+}
+
+namespace surf {
+ class Cpu;
+ class LinkImpl;
+ class HostImpl;
+ class StorageImpl;
+ class StorageType;
+}
+namespace trace_mgr {
+ class trace;
+ class future_evt_set;
+}