local_class.h File Reference

#include "ClassCfg.h"

Go to the source code of this file.

Defines

#define  local_visible_class(_cls)
#define  local_applyable_class(_cls)
#define  local_visible_class_instance(_cls, _name)   _cls##Class _cls##_class (_M(_name));
#define  cat0(_a)   _a
#define  cat1(_a)   cat0(_a)
#define  cat2(_a, _b)   cat0(_a)##cat0(_b)
#define  str0(_c)   #_c
#define  str1(_c)   str0(_c)
#define  MS_LOCAL_ROOT_CLASS_TAG   &CONCATENATE(MS_LOCAL_ROOT_CLASS, _class)
#define  MS_LOCAL_GENERIC_CLASS_TAG   &CONCATENATE(MS_LOCAL_GENERIC_CLASS, _class)
#define  MS_LOCAL_GENERIC_CLASS_CLASS   CONCATENATE(MS_LOCAL_GENERIC_CLASS, Class)
#define  MS_LOCAL_GENERIC_CLASS_class   CONCATENATE(MS_LOCAL_GENERIC_CLASS, _class)
#define  CONCATENATE_HELPER(x, y)   x##y
  Concatenation Macros For details on the token pasting operator and joining two strings together in the preprocessor see:
#define  CONCATENATE(x, y)   CONCATENATE_HELPER(x,y)
  Joins two strings together in the preprocessor before the code is compiled.

Typedefs

typedef Value
*(MS_LOCAL_ROOT_CLASS::* 
local_value_vf )(Value **, int)

Define Documentation

#define local_visible_class (   _cls )
Value:
class _cls##Class : public ValueMetaClass                           \
    {                                                           \
    public:                                                     \
        _cls##Class(MCHAR* name) : ValueMetaClass (name) { }                \
        void    collect() { delete this; }                              \
    };                                                          \
    extern _cls##Class _cls##_class;

Definition at line 13 of file local_class.h.

#define local_applyable_class (   _cls )
Value:
class _cls##Class : public ValueMetaClass                           \
    {                                                           \
    public:                                                     \
        _cls##Class(MCHAR* name) : ValueMetaClass (name) { }                \
        void    collect() { delete this; }                              \
        Value* apply(Value** arglist, int count, CallContext* cc = NULL);   \
    };                                                          \
    extern _cls##Class _cls##_class;

Definition at line 22 of file local_class.h.

#define local_visible_class_instance (   _cls,
  _name 
)    _cls##Class _cls##_class (_M(_name));

Definition at line 32 of file local_class.h.

#define cat0 (   _a )    _a

Definition at line 38 of file local_class.h.

#define cat1 (   _a )    cat0(_a)

Definition at line 39 of file local_class.h.

#define cat2 (   _a,
  _b 
)    cat0(_a)##cat0(_b)

Definition at line 40 of file local_class.h.

#define str0 (   _c )    #_c

Definition at line 41 of file local_class.h.

#define str1 (   _c )    str0(_c)

Definition at line 42 of file local_class.h.

#define CONCATENATE_HELPER (   x,
  y 
)    x##y

Concatenation Macros For details on the token pasting operator and joining two strings together in the preprocessor see:

  • ISO/IEC 14882:2003(E) 16.3.3 The ## operator
  • ISO/IEC 9899:1999 (E) 6.10.3.3 The ## operator Helper macro used in concatenating two strings.

Definition at line 51 of file local_class.h.

#define CONCATENATE (   x,
  y 
)    CONCATENATE_HELPER(x,y)

Joins two strings together in the preprocessor before the code is compiled.

Definition at line 53 of file local_class.h.

#define MS_LOCAL_ROOT_CLASS_TAG   &CONCATENATE(MS_LOCAL_ROOT_CLASS, _class)

Definition at line 56 of file local_class.h.

#define MS_LOCAL_GENERIC_CLASS_TAG   &CONCATENATE(MS_LOCAL_GENERIC_CLASS, _class)

Definition at line 57 of file local_class.h.

#define MS_LOCAL_GENERIC_CLASS_CLASS   CONCATENATE(MS_LOCAL_GENERIC_CLASS, Class)

Definition at line 58 of file local_class.h.

#define MS_LOCAL_GENERIC_CLASS_class   CONCATENATE(MS_LOCAL_GENERIC_CLASS, _class)

Definition at line 59 of file local_class.h.


Typedef Documentation

typedef Value*(MS_LOCAL_ROOT_CLASS::* local_value_vf)(Value **, int)

Definition at line 36 of file local_class.h.