ChasmDefines_Includes


These defines include or declare other Concepts used for the current one.

CHASMCOMPONENTINCLUDES

This includes any files which are needed by the current concept which are Concepts themselves. In the case of the WorldObject Concept, has the component of Position and Resource. So, this turns into:

#include "/usr/local/include/chasm_0.3/vocab/Position.chasm.h"
#include "/usr/local/include/chasm_0.3/vocab/Resource.chasm.h"

CHASMPARENTINCLUDE

This includes the file for the parent of this concept.

CHASMCOMPONENTCLASSES

This just specifies that the components are classes. By only defining them as classes and not including the files, this removes circular inheritance problems in header files as well as making compilation faster. For the above example in WorldObject, this generates:

class Position;
class Resource;