Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef IWORKPROPERTYINFO_H_INCLUDED
00011 #define IWORKPROPERTYINFO_H_INCLUDED
00012
00013 #include <string>
00014
00015 namespace libetonyek
00016 {
00017
00018 typedef std::string IWORKPropertyID_t;
00019
00020 template<typename Name>
00021 struct IWORKPropertyInfo
00022 {
00023
00024
00025 };
00026
00027 #define IWORK_DECLARE_PROPERTY(name, type) \
00028 namespace property { \
00029 struct name {}; \
00030 } \
00031 \
00032 template<> \
00033 struct IWORKPropertyInfo<property::name> \
00034 { \
00035 typedef type ValueType; \
00036 static const IWORKPropertyID_t id; \
00037 }
00038
00039 #define IWORK_IMPLEMENT_PROPERTY(name) \
00040 const IWORKPropertyID_t IWORKPropertyInfo<property::name>::id = #name
00041
00042 }
00043
00044 #endif // IWORKPROPERTYINFO_H_INCLUDED
00045
00046