1 // PR c++/43054
2 // { dg-do compile { target c++11 } }
3 
4 template<typename R> struct future { };
5 
6 template<typename Fn, typename... Args>
7  auto
8  async(Fn&& fn, Args&&... args)
9  -> future<decltype(fn(args...))>;
10 
11 template<typename Fn, typename... Args>
12  auto
13  async(Fn&& fn, Args&&... args)
14  -> future<decltype(fn(args...))>;
15 
16 int work2(int value);
17 
work(int value)18 void work(int value)
19 {
20   async(work2, value);
21 }
22 
23