So I've browsing the web for a simple concise explanation of these two types and I'm still not quite getting it. What I've gathered is that auto is very limiting when it comes to inferring a data type because you have to reference it(usually with the & operator) and decltype is just the type of an expression and as such takes references into account. Also, if you may, can you explain when would it be appropriate to use either of these two data types.