https://medium.com/@simontoth/daily-bit-e-of-c-overload-selection-functions-vs-function-templates-cdd733b8278b