Clang warning because of invalid comparation.

Clang is complaining about the >= 8 comparation. The enum has only
0 to 7, so compare with 8 is considered a warning.

Changed the code to check > 7.
Deprecated std::auto_ptr

Replacing the std::auto_ptr deprecated to his substitute std::unique_ptr.
Variable length array of non-POD

Clang does not support variable length for non POD. Changed the code
to use a vector instead of an array if the compiler is clang.
Handling float as boolean

Casting the float to boolean to prevent a clang warning.
Conflict with template and inner variable

Clang is complaining about the Z template argument having the same
name as the Z local variable.

Changed the inner Z variable to be lowercase z.
Added not found information when using clang.

The _Unwind_Ptr is not defined when using clang.
Assembly not working when using clang compiler.

Changed the shrd to use shrd_emulated when using clang.
Assembly not working with double variable

Changed the code to cast the double variable to uint64_t. It must
work on all cases, because according to IEEE 754 a double precision
binary floating-point format is binary64.
Missing typeinfo header

Clang is complaining about typeinfo header.
Create two versions of the function

Created two versions of the function, one for signed and another
one for unsigned. The reason of that is because clang is complaining
about the check of >= 0 that will always be false when unsigned.
Changed the size_t to be const

Changed thee CHUNK to be static const.
Missed builtin functions on Clang

Mapped the missed builtin functions to the clang mm functions.
Wrong use of unsigned variable

1- loop will never stop since it is checking >= 0 and the variable
   is unsigned. Changed the code to be signed.

2- Using the wrong capacity attribute. It was checking the method
   instead of the capacity_ attribute
Using the wrong type.

Changed the int type to be auto.
Clang complaining about assembly instruction

Changed the assembly instruction to use 32 bits variable
Added BASE_DIR for tests

Tests are now supporting a BASE_DIR define, that will tell to the
project the absolute application directory location.