// PR c++/108887 // { dg-do compile { target c++11 } } template struct integral_constant { static constexpr int value = __v; }; using false_type = integral_constant; template struct __result_of_impl; template struct __result_of_impl { typedef decltype(0) type; }; template struct __invoke_result : __result_of_impl {}; template void __invoke_impl(_Fn __f, _Args... __args) { __f(__args...); } template void __invoke_r(_Callable __fn, _Args... __args) { using __result = __invoke_result<_Args...>; using __type = typename __result::type; __invoke_impl<__type>(__fn, __args...); } struct QString { QString(const char *); }; template class function; template struct _Base_manager { static _Functor _M_get_pointer(int) { __builtin_abort (); } }; template class _Function_handler; template struct _Function_handler<_Res(_ArgTypes...), _Functor> { using _Base = _Base_manager<_Functor>; static _Res _M_invoke(const int &__functor, _ArgTypes &&...__args) { auto __trans_tmp_1 = _Base::_M_get_pointer(__functor); __invoke_r<_Res>(__trans_tmp_1, __args...); } }; template struct function<_Res(_ArgTypes...)> { template using _Handler = _Function_handler<_Res(_ArgTypes...), _Functor>; template function(_Functor) { using _My_handler = _Handler<_Functor>; _M_invoker = _My_handler::_M_invoke; } using _Invoker_type = _Res (*)(const int &, _ArgTypes &&...); _Invoker_type _M_invoker; }; struct QRegularExpression { QRegularExpression(QString); }; struct AbstractAccount { void get(function, function); }; struct AbstractTimelineModel { AbstractAccount m_account; }; struct LinkPaginationTimelineModel : AbstractTimelineModel { void fillTimeline(); }; void LinkPaginationTimelineModel::fillTimeline() { [] {}; m_account.get([](AbstractAccount *) { static QRegularExpression re(""); }, [](AbstractAccount *) {}); }