Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.dg/other/copy1.C @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
// { dg-do run } // Copyright (C) 2000 Free Software Foundation, Inc. // Contributed by Nathan Sidwell 30 Nov 2001 <nathan@nathan@codesourcery.com> // PR 87 int assign = 0; int ctor = 0; int assignC = 0; struct A { int i; template<class T> void operator=(const T&) const { assign = 1; } A () : i (0) {} template <typename T> A (const T &) { ctor = 1; } }; struct B : A { }; struct C { int i; C (int i_) :i (i_) {} template <int I> void operator= (const C &) { assignC = 1; } }; int main() { const A a; A b; B c; b = a; if (assign) return 5; b.i = 100; c.i = 200; a = b; if (!assign) return 1; if (a.i) return 2; A e (b); if (ctor) return 3; A d (c); if (!ctor) return 4; C c0 (0); C c1 (1); c0 = c1; if (assignC) return 5; return 0; }