1 // PR c++/48557
2 // { dg-do compile { target c++11 } }
3 
4 template<class T>
5 struct add_rval_ref
6 {
7   typedef T&& type;
8 };
9 
10 template<>
11 struct add_rval_ref<void>
12 {
13   typedef void type;
14 };
15 
16 template<class T>
17 typename add_rval_ref<T>::type create();
18 
19 template<class T, class U,
20   class = decltype(create<T>() + create<U>())
21 >
22 char f(int);
23 
24 template<class, class>
25 char (&f(...))[2];
26 
27 static_assert(sizeof(f<void, int>(0)) != 1, "Error");  // (a)
28