I would like to know why the following is rejected by MSVC and not Clang or GCC. I adapted the code from a post I read about a while ago and was playing around with it