diff options
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.pt/expr1.C')
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.pt/expr1.C | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/expr1.C b/gcc/testsuite/g++.old-deja/g++.pt/expr1.C new file mode 100644 index 000000000..124d265dd --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.pt/expr1.C @@ -0,0 +1,34 @@ +// { dg-do run } +template <int n> class vec { + double x[n]; + + public: + vec() { + for (int i=0; i<n-1; ++i) x[i]=0; + } + + vec(const vec<n>& v) { + for (int i=0; i<n; ++i) x[i]=v(i); + } + + vec(const vec<n-1>& v, const double& y) { + for (int i=0; i<n-1; ++i) x[i]=v(i); + x[n-1]=y; + } + + inline double operator()(const int i) const { + return x[i]; + } +}; + + +template <int n> vec<n + 1>& operator,(const vec<n>& v, const double& y) { + return *(new vec<n + 1>(v, y)); +} + + +int main() { + vec<4> v; + vec<5> w; + w=(v,3.); +} |