-#if FASTTAGKEY
-typedef union {
- uint16_t tab[2];
- uint32_t tagkey;
- } TagKey;
-/* ostream operator for TagKey */
-inline std::ostream& operator<<(std::ostream& _O, TagKey _val)
-{
- _O.setf( std::ios::right);
- return (_O << std::hex << std::setw( 4 ) << std::setfill( '0' )
- << _val.tab[0] << '|' << std::setw( 4 ) << std::setfill( '0' )
- << _val.tab[1] << std::setfill( ' ' ) << std::dec);
-}
-inline bool operator==(TagKey _self, TagKey _val)
-{
- return _self.tagkey == _val.tagkey;
-}
-inline bool operator<(TagKey _self, TagKey _val)
-{
- // This expression is a tad faster but PrintFile output
- // is more difficult to read
- //return _self.tagkey < _val.tagkey;
-
- // More usal order of dicom tags:
- if( _self.tab[0] == _val.tab[0] )
- return _self.tab[1] < _val.tab[1];
- return _self.tab[0] < _val.tab[0];
-}
-#else
-typedef std::string TagKey;
-#endif