http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51365
Bug #: 51365 Summary: cannot use final empty class in std::tuple Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Keywords: rejects-valid Severity: normal Priority: P3 Component: libstdc++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: r...@gcc.gnu.org #include <tuple> struct F final { }; std::tuple<F> t; This should work. I don't know how to make it work without a compiler-assisted is_final trait.