https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92099
--- Comment #5 from 孙晅 <sunxuanmailbox at 163 dot com> --- (In reply to Jason Merrill from comment #4) > How is this type-dependent? id is value-dependent, but not type-dependent: > it has type E. This seems like a valid (though optional) diagnostic. But since id is a template argument, by the time of compiling the type of id is certain, using decltype(id) will give a certain type. And gcc8 already supports this. It only has problem with gcc9.