1// { dg-do run } 2// GROUPS passed constructors 3#include <cstdio> 4#include <cstdlib> 5#include <iostream> 6 7#define MAGIC 7654 8 9class complex { 10 double re; 11 double im; 12 int magic; 13 static int count; 14public: 15 complex() { re=im=0; magic=MAGIC; } 16 complex(double d) { re=d; im=0; magic=MAGIC; } 17 complex(double d, double d2) {re=d; im=d2; magic=MAGIC; } 18 ~complex() {if(magic!=MAGIC) {std::printf("FAIL\n"); std::exit(1);}} 19 friend std::ostream& operator << (std::ostream& o, const complex& c) 20 { return o << "(" << c.re << "," << c.im << ")"; } 21}; 22 23int complex::count=0; 24 25int main() 26{ 27 complex v[6] = {1, complex(1,2), complex(), 2 }; // ARM Sect. 12.6.1 28 int i; // page 289 29 30 for(i=0; i<6; i++) ; 31 std::printf ("PASS\n"); 32 33 return 0; 34} 35