References ========== ## C Macro tricks We use C Macro tricks described in the following: * [C Pre-Processor Magic](http://jhnet.co.uk/articles/cpp_magic) * [C Macros: How to map another macro to variadic arguments?](https://stackoverflow.com/questions/45585903/c-macros-how-to-map-another-macro-to-variadic-arguments) * [C Preprocessor tricks, tips, and idioms](https://github.com/pfultz2/Cloak/wiki/C-Preprocessor-tricks,-tips,-and-idioms) * [Detect empty macro arguments](https://gustedt.wordpress.com/2010/06/08/detect-empty-macro-arguments/) * [Optional Parameters with C++ Macros](https://stackoverflow.com/questions/3046889/optional-parameters-with-c-macros/3048361#3048361) ## C++ Template tricks * [Template argument deduction](https://en.cppreference.com/w/cpp/language/template_argument_deduction) * [C++ variadic templates](http://anderberg.me/2016/08/01/c-variadic-templates/) * [Practical uses for variadic templates](https://crascit.com/2015/03/21/practical-uses-for-variadic-templates/) ## C++ Template Peculiarity * [Can a class member function template be virtual?](https://stackoverflow.com/questions/2354210/can-a-c-class-member-function-template-be-virtual)