This is one of the instances where `auto` makes things more confusing than helpful, I'd say.

For instance, I just had to look up the return type of GetActiveShaderBytecode, because I thought that function was returning a reference rather than a pointer (in which case `auto&` would have been necessary to make sure no redundant copy is done).

Other people might disagree on this, however.