http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59607
vyf at princeton dot edu changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED --- Comment #1 from vyf at princeton dot edu --- There were bugs in my code: std::forward(args)... should have been std::forward<Args>(args)... new (get()) T(std::forward<Args>(args)...) should have been new (get()) optional(std::forward<Args>(args)...). I don't know why gcc had an error during compilation because of this (it should have just pointed out these problems), but everything works fine now that I fixed the bugs.