To make the compiler show me the type of something, I usually use the improptu class as follows:
template <class T> struct show_type;
Then, in the code where you need to examine the type, you will do the following:
show_type<decltype(room)> t;
Compile this, and the compiler will rightfully complain that show_type<T> is undefined; but in the error message it will be useful to indicate the T with which an attempt was made to create an instance.
Angew source share