This will let us detect problems with unused return values. For instance,
if you don’t remember that normalize(q) returns a pointer and expect it
to modify the object, you’ll get this warning:
warning: ignoring return value of function declared with 'nodiscard' attribute [-Wunused-result]
quat q(1,2,3,4); normalize(q);
^~~~~~~~~ ~
Since C++11 threads are available on every platform that has threads, we
no longer need our pthread implementation. The LOL_FEATURE_CXX11_THREADS
macro is gone, too, and we now just use LOL_FEATURE_THREADS.
Note that it is still necessary to link with -lpthread or -pthread on
some platforms, so we don’t throw that part away.
MASK to SWIZZLE in the vector templates, rename matrix<> to mat<> for
consistency, implement transposition for all matrix sizes, make matrix
columns private and only accessible through operator[].