00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef MLN_TRAIT_SITE_SET_PROPS_HH
00027 # define MLN_TRAIT_SITE_SET_PROPS_HH
00028
00037 # include <string>
00038 # include <mln/trait/undef.hh>
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078 namespace mln
00079 {
00080
00081 namespace trait
00082 {
00083
00084 namespace site_set
00085 {
00086
00087
00089 struct nsites
00090 {
00092 struct any { protected: any() {} };
00093
00097 struct unknown : any { std::string name() const { return "nsites::unknown"; } };
00098
00102 struct known : any { std::string name() const { return "nsites::known"; } };
00103 };
00104
00105
00107 struct bbox
00108 {
00110 struct any { protected: any() {} };
00111
00117 struct unknown : any { std::string name() const { return "bbox::unknown"; } };
00118
00125 struct known : any { protected: known() {} };
00126
00129 struct lazy : known { std::string name() const { return "bbox::lazy"; } };
00130
00133 struct straight : known { std::string name() const { return "bbox::straight"; } };
00134 };
00135
00136
00138 struct contents
00139 {
00141 struct any { protected: any() {} };
00142 struct fixed : any { std::string name() const { return "contents::fixed"; } };
00143 struct dynamic : any { protected: dynamic() {} };
00144 struct growing : dynamic { std::string name() const { return "contents::growing"; } };
00145 struct free : dynamic { std::string name() const { return "contents::free"; } };
00146 };
00147
00150 struct arity
00151 {
00153 struct any { protected: any() {} };
00154 struct unique : any { std::string name() const { return "arity::unique"; } };
00155 struct multiple : any { std::string name() const { return "arity::multiple"; } };
00156 };
00157
00158
00159
00160
00161
00162 }
00163
00164 }
00165
00166
00167 }
00168
00169
00170 #endif // ! MLN_TRAIT_SITE_SET_PROPS_HH