Use of funcName() before deduction of auto — why in one case but not the other?
问题 Consider the following code: #include <unordered_map> #include <tuple> namespace Test { template<typename State> struct StateTableEntry { State state; }; template<typename State> using StateRow = std::unordered_map<int,StateTableEntry<State>>; template<typename StateRowValueType> auto& entryBAD(StateRowValueType& row) { return row.second; } template<typename StateRowValueType> auto entryOK(StateRowValueType& row) -> decltype((row.second)) { return row.second; } } template<class T,int I,class