1// { dg-do assemble  }
2
3template <class S, class T>
4class mem_fun1_t {
5public:
6  mem_fun1_t(S (T::*pf)(double)) {}
7};
8
9template <class T>
10class mem_fun1_t<void, T> {
11public:
12  mem_fun1_t(void (T::*pf)(double)) {}
13};
14
15struct Operation {
16  double eval(double) { return 0; }
17};
18
19int main() {
20  mem_fun1_t<double, Operation> m(&Operation::eval);
21}
22