|     34 namespace ldraw | 
    34 namespace ldraw | 
|     35 { | 
    35 { | 
|     36 	// Uniquely identifies a model body object | 
    36 	// Uniquely identifies a model body object | 
|     37 	struct Id | 
    37 	struct Id | 
|     38 	{ | 
    38 	{ | 
|     39 		unsigned int value; | 
    39 		std::int32_t value; | 
|     40 		constexpr bool operator<(ldraw::Id other) const | 
    40 		constexpr bool operator<(ldraw::Id other) const | 
|     41 		{ | 
    41 		{ | 
|     42 			return this->value < other.value; | 
    42 			return this->value < other.value; | 
|     43 		} | 
    43 		} | 
|     44 	}; | 
    44 	}; | 
|         | 
    45 	using id_t = Id; | 
|         | 
    46 	constexpr id_t NULL_ID = id_t{0}; | 
|     45 } | 
    47 } | 
|     46  | 
    48  | 
|     47 constexpr std::size_t operator""_z(const unsigned long long int x) | 
    49 constexpr std::size_t operator""_z(const unsigned long long int x) | 
|     48 { | 
    50 { | 
|     49 	return static_cast<std::size_t>(x); | 
    51 	return static_cast<std::size_t>(x); |