aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/g++.dg/overload/operator-star-1.C
blob: 8780d5f622f0f85a2475508092f052ddb2e8e48b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// Copyright (C) 2002 Free Software Foundation
// Origin: C++/70
// Contributed by Gabriel Dos Reis <gdr@integrable-solutions.net>
// { dg-do compile }

template <class T>
  struct S;

template <class T>
  void operator* (S<T>, S<T>);

template <class T>
  struct S
  {
     friend void operator*<> (S, S); // { }   // okay
     void operator* (T) { }
  };

template <class T>
  void operator* (S<T>, S<T>) { }  

int main()
{
   S<int> s1, s2;
   s1 * s2;
   s1 * 2;
}