|  |  |  | @ -29,6 +29,7 @@ distribution. | 
		
	
		
			
				|  |  |  |  | #include <sstream> | 
		
	
		
			
				|  |  |  |  | #include <string> | 
		
	
		
			
				|  |  |  |  | #include <vector> | 
		
	
		
			
				|  |  |  |  | #include <future> | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | #include "DataDefs.h" | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
	
		
			
				
					|  |  |  | @ -546,6 +547,9 @@ namespace df | 
		
	
		
			
				|  |  |  |  | #define INTEGER_IDENTITY_TRAITS(type) NUMBER_IDENTITY_TRAITS(integer, type) | 
		
	
		
			
				|  |  |  |  | #define FLOAT_IDENTITY_TRAITS(type) NUMBER_IDENTITY_TRAITS(float, type) | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | // the space after the use of "type" in OPAQUE_IDENTITY_TRAITS is _required_
 | 
		
	
		
			
				|  |  |  |  | // without it the macro generates a syntax error when type is a template specification
 | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | #define OPAQUE_IDENTITY_TRAITS(type) \ | 
		
	
		
			
				|  |  |  |  |     template<> struct DFHACK_EXPORT identity_traits<type > { \ | 
		
	
		
			
				|  |  |  |  |         static opaque_identity identity; \ | 
		
	
	
		
			
				
					|  |  |  | @ -568,6 +572,7 @@ namespace df | 
		
	
		
			
				|  |  |  |  |     OPAQUE_IDENTITY_TRAITS(std::condition_variable); | 
		
	
		
			
				|  |  |  |  |     OPAQUE_IDENTITY_TRAITS(std::fstream); | 
		
	
		
			
				|  |  |  |  |     OPAQUE_IDENTITY_TRAITS(std::mutex); | 
		
	
		
			
				|  |  |  |  |     OPAQUE_IDENTITY_TRAITS(std::future<void>); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     template<> struct DFHACK_EXPORT identity_traits<bool> { | 
		
	
		
			
				|  |  |  |  |         static bool_identity identity; | 
		
	
	
		
			
				
					|  |  |  | 
 |