std::function<int()> a;
std::function<int()>::result_type b;  ← OK
decltype(a)::result_type c;       ← Error!  expected initializer before ‘c’

これはGCCのバグというか、まだ実装途中ってことなんだよね?