+ /// a type used for numbering text classes
+ typedef size_t textclass_type;
+
+#else
+
+ // These structs wrap simple things to make them distinguishible
+ // to the compiler.
+ // It's a shame that different typedefs are not "really" different
+
+ struct size_type {
+ ///
+ typedef size_t base_type;
+ ///
+ size_type(base_type t) { data_ = t; }
+ ///
+ operator base_type() const { return data_; }
+ ///
+ private:
+ base_type data_;
+ };
+
+ struct textclass_type {
+ ///
+ typedef size_t base_type;
+ ///
+ textclass_type(base_type t) { data_ = t; }
+ ///
+ operator base_type() const { return data_; }
+ ///
+ private:
+ base_type data_;
+ };