OpenCores
URL https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk

Subversion Repositories openrisc_2011-10-31

[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc1/] [gcc/] [testsuite/] [g++.old-deja/] [g++.martin/] [sts_iarr.C] - Blame information for rev 338

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 305 jeremybenn
// { dg-do run  }
2
// egcs-bugs 999-02-22 14:26 Stefan Schwarzer
3
// sts@ica1.uni-stuttgart.de
4
// should compile and return 0
5
 
6
template 
7
struct Outer{
8
  struct Inner{
9
    Inner(int n): sum(n){}
10
 
11
    typename Outer::Inner operator[](int n) const
12
    { return typename Outer::Inner(sum + n); }
13
 
14
    int sum;
15
  };
16
 
17
  typename Outer::Inner operator[](int n) const
18
  { return typename Outer::Inner(n); }
19
};
20
 
21
 
22
// specializations for N==1
23
template<>
24
struct Outer<1> {
25
  struct Inner {
26
    Inner(int n): sum(n){}
27
 
28
    int operator[](int n) const
29
    { return sum+n; }
30
 
31
    int sum;
32
  };
33
 
34
  int operator[](int n) const
35
  { return n; }
36
};
37
 
38
 
39
int main()
40
{
41
  Outer<1>  sum1;
42
  //std::cout << sum1[1] << "\n";
43
  Outer<2>  sum2;
44
  //std::cout << sum2[1][1] << "\n";
45
  return sum1[1] + sum2[1][1] - 3;
46
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.