https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71794
Bug ID: 71794 Summary: Std::array as an incomplete type in nested name specifier. Product: gcc Version: 6.1.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ Assignee: unassigned at gcc dot gnu.org Reporter: p.bednarski at outlook dot com Target Milestone: --- Created attachment 38851 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38851&action=edit Code that won't compile on GCC. In code attached: MyContainer type works perfectly fine. std::vector works fine as well. Error message: $ g++-6 -Wall -Wextra -Wpedantic --std=c++14 main.cpp main.cpp: In instantiation of ‘T foo() [with T = std::array<float, 4ul>]’: main.cpp:39:31: required from here main.cpp:16:21: error: incomplete type ‘B<std::array<float, 4ul> >’ used in nested name specifier return B<T>::bar(); ~~~~~~~~~^~