https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95449
Bug ID: 95449 Summary: void_t does not work with some uses of vector_size Product: gcc Version: 10.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: dummyddd at gmail dot com Target Milestone: --- Created attachment 48646 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=48646&action=edit Example, same as on godbolt Since GCC 10, the default void_t implementation does not work on some expressions with vector_size types (see attachment or https://godbolt.org/z/72xdVZ). void_t implementations with the CWG issue 1558 workaround still work. GCC versions between 4.9.0 and 9.3 can compile such expressions without the workaround (even though the fix for CWG issue 1558 wasn't required until c++14). I wasn't able to reduce the example more than this without getting the code to compile in GCC 10. Specifically, replacing "SWithSize<sizeof((V{ })[0])>" with "SWithSize<sizeof((Vec<s64>{ })[0])>" does work in GCC 10.