http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58481
--- Comment #3 from Paolo Carlini <paolo.carlini at oracle dot com> --- Indeed, let's avoid the big <functional>, this is enough: struct Test { template<typename... Args> inline void triggerTest (Args&&... fargs) { } }; struct TestPickled : Test { template<typename... Args> void triggerTest (Args&&... fargs) { [=](Args... as) { Test::triggerTest(as...); // this->_Test::triggerTest(as...); // ^^^^^^^ THIS WORKAROUNDS THE PROBLEM } (); } }; int main() { TestPickled test; test.triggerTest(); return 0; }