Add README.md
This commit is contained in:
		
							
								
								
									
										16
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
				
			|||||||
 | 
					# Generics/Metaprogramming in C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Exploring different ideas for implementing generics in C.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[01_no_metaprogramming](./01_no_metaprogramming) is the result of the code if implemented manually.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[02_macros](./02_macros) is an implementation that uses simple macros to define 2D and 3D vectors for different data types.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[03_xmacros](./03_xmacros) is an implementation that relies on X macros to allow for defining any N-dimensional vector for different data types. In this case, it is only 2D and 3D vectors, but it can be easily expanded to other dimensions.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## General assessment of the different techniques
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					| Technique             | Readability | Debugging  | Maintenance | Extensibility | Score    |
 | 
				
			||||||
 | 
					| 01_no_metaprogramming | ⭐⭐⭐⭐⭐  | ⭐⭐⭐⭐⭐ | ⭐⭐        | ⭐            | 3.25 / 5 |
 | 
				
			||||||
 | 
					| 02_macros             | ⭐⭐⭐      | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐    | ⭐⭐⭐        | 3.75 / 5 |
 | 
				
			||||||
 | 
					| 03_xmacros            | ⭐          | ⭐⭐       | ⭐⭐⭐      | ⭐⭐⭐⭐⭐    | 2.75 / 5 |
 | 
				
			||||||
		Reference in New Issue
	
	Block a user