There are project where long compilation times is the problem. One way to reduce that time is to avoid inclusion of headers with full definitions of classes and templates.
SObjectizer is not fully adopted to such a case right now. The canonical way of using SO-5 is to include <so_5/all.hpp>, but this header file adds full definitions for a lot of stuff (like environment_t, coop_t, agent_t, mchain_t and so on). It's an overkill if a consumer just want to have a forward definition for a couple of classes (like environment_t and agent_t).
There is the so_5/fwd.h file, but it has just a few forward declarations. It seems that the content of this file may be extended. For example, it may contain forward declarations for abstract_message_chain_t (may be with mchain_t), disp_binder_t and so on.
In such a case it will be possible to include just <so_5/fwd.hpp> instead of <so_5/all.hpp> and avoid degradation of compilation time for some projects.
There are project where long compilation times is the problem. One way to reduce that time is to avoid inclusion of headers with full definitions of classes and templates.
SObjectizer is not fully adopted to such a case right now. The canonical way of using SO-5 is to include
<so_5/all.hpp>, but this header file adds full definitions for a lot of stuff (likeenvironment_t,coop_t,agent_t,mchain_tand so on). It's an overkill if a consumer just want to have a forward definition for a couple of classes (likeenvironment_tandagent_t).There is the
so_5/fwd.hfile, but it has just a few forward declarations. It seems that the content of this file may be extended. For example, it may contain forward declarations forabstract_message_chain_t(may be withmchain_t),disp_binder_tand so on.In such a case it will be possible to include just
<so_5/fwd.hpp>instead of<so_5/all.hpp>and avoid degradation of compilation time for some projects.