Give credits to D. Krauss for the enumeration decltype trick.