[raymath] Type-Generic RayMath (tgraymath.h) #4170
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Tags: [TEACH] [CONVENIENCE]
TL;DR: Type-Generic RayMath function-like macros in the spirit of tgmath.h
Since the standard library has tgmath for type-generic math, thought it was only fitting to create type-generic raymath! 💯
Probably not wanted or needed but offered as convenience. Allows omitting specific type for a bunch of Vector operations and some operations also supporting floats and numbers.
Most things are limited, but I decided to use defaults for the variants which also includes floats. This will allow usage of any number type, but I suspect -Wconversion will complain if someone aren't using compatible float types on float functions. Trying to set up _Generic for compatible type will literally explode the macros.
_Generic is ass.For Raylib as a teaching tool, I suspect there are examples here of nested _Generics.
Includes a preprocessor warning in case someone tries to use the file in a project that is compiled with versions less than C11. (-Wcpp)
Test file