std::decay returns the type of a parameter, as if that parameter was passed by value. Interesting interpretation. I always intended std::decay as a way to deduce the type resulting from array to pointer decay. But this is indeed limiting, as stated by cppreference: This is the type conversion…