https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113470
--- Comment #1 from Daniel Krügler <daniel.kruegler at googlemail dot com> --- I think the essence is how [tuple.helper] p4 is specified. Combining with [tuple.syn], template<class T> struct tuple_size; // not defined template<class T> struct tuple_size<const T>; I tend to read that a definition is required for tuple_size<const T>. I would understand if that interpretation is not universally accepted.