18 lines
		
	
	
		
			318 B
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			18 lines
		
	
	
		
			318 B
		
	
	
	
		
			C
		
	
	
	
	
	
| 
								 | 
							
								#pragma once
							 | 
						||
| 
								 | 
							
								#include <utility>
							 | 
						||
| 
								 | 
							
								namespace meta
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									template<typename T>
							 | 
						||
| 
								 | 
							
									struct comparable
							 | 
						||
| 
								 | 
							
									{
							 | 
						||
| 
								 | 
							
										bool operator>(const T&)  const;
							 | 
						||
| 
								 | 
							
										bool operator<=(const T&) const;
							 | 
						||
| 
								 | 
							
										bool operator>=(const T&) const;
							 | 
						||
| 
								 | 
							
										bool operator==(const T&) const;
							 | 
						||
| 
								 | 
							
										bool operator!=(const T&) const;
							 | 
						||
| 
								 | 
							
									private:
							 | 
						||
| 
								 | 
							
										T& me();
							 | 
						||
| 
								 | 
							
										const T& me() const;
							 | 
						||
| 
								 | 
							
									};
							 | 
						||
| 
								 | 
							
								}
							 |