From: dcb@slsvitt (David Binderman 3841)
Subject: long names
Organization: SEL-Alcatel LTS Dept. US/ES
X-Newsreader: Tin 1.1 PL4
Date: Thu, 19 Nov 92 17:44:53 GMT

hello there,

Here is a piece of code for the test suite of all the C++ compiler
vendors out there.

Does your C++ compiler accept this code ? and if it does not, why not ?

extern "C" int printf( const char *, ...);

class A1StandardElectrikLorenzdashAlcatelLongName { 
public:
	A1StandardElectrikLorenzdashAlcatelLongName();
};

A1StandardElectrikLorenzdashAlcatelLongName::A1StandardElectrikLorenzdashAlcatelLongName() {
	printf( "A1 ctor\n");
};

class A2StandardElectrikLorenzdashAlcatelLongName {
public:
	A2StandardElectrikLorenzdashAlcatelLongName();
};

A2StandardElectrikLorenzdashAlcatelLongName::A2StandardElectrikLorenzdashAlcatelLongName() {
	printf( "A2 ctor\n");
};

class A3StandardElectrikLorenzdashAlcatelLongName {
public:
	A3StandardElectrikLorenzdashAlcatelLongName();
};

A3StandardElectrikLorenzdashAlcatelLongName::A3StandardElectrikLorenzdashAlcatelLongName() {
	printf( "A3 ctor\n");
};

class A4StandardElectrikLorenzdashAlcatelLongName {
public:
	A4StandardElectrikLorenzdashAlcatelLongName();
};

A4StandardElectrikLorenzdashAlcatelLongName::A4StandardElectrikLorenzdashAlcatelLongName() {
	printf( "A4 ctor\n");
};

class A5StandardElectrikLorenzdashAlcatelLongName {
public:
	A5StandardElectrikLorenzdashAlcatelLongName();
};

A5StandardElectrikLorenzdashAlcatelLongName::A5StandardElectrikLorenzdashAlcatelLongName() {
	printf( "A5 ctor\n");
};

class A6StandardElectrikLorenzdashAlcatelLongName {
public:
	A6StandardElectrikLorenzdashAlcatelLongName();
};

A6StandardElectrikLorenzdashAlcatelLongName::A6StandardElectrikLorenzdashAlcatelLongName() {
	printf( "A6 ctor\n");
};

class A7StandardElectrikLorenzdashAlcatelLongName {
public:
	A7StandardElectrikLorenzdashAlcatelLongName();
};

A7StandardElectrikLorenzdashAlcatelLongName::A7StandardElectrikLorenzdashAlcatelLongName() {
	printf( "A7 ctor\n");
};

class A8StandardElectrikLorenzdashAlcatelLongName {
public:
	A8StandardElectrikLorenzdashAlcatelLongName();
};

A8StandardElectrikLorenzdashAlcatelLongName::A8StandardElectrikLorenzdashAlcatelLongName() {
	printf( "A8 ctor\n");
};

class A9StandardElectrikLorenzdashAlcatelLongName {
public:
	A9StandardElectrikLorenzdashAlcatelLongName();
};

A9StandardElectrikLorenzdashAlcatelLongName::A9StandardElectrikLorenzdashAlcatelLongName() {
	printf( "A9 ctor\n");
};

class XIsAlsoALongName
{
public :
    XIsAlsoALongName(
        const A1StandardElectrikLorenzdashAlcatelLongName& ,
        const A2StandardElectrikLorenzdashAlcatelLongName& ,
        const A3StandardElectrikLorenzdashAlcatelLongName& ,
        const A4StandardElectrikLorenzdashAlcatelLongName& ,
        const A5StandardElectrikLorenzdashAlcatelLongName& ,
        const A6StandardElectrikLorenzdashAlcatelLongName& ,
        const A7StandardElectrikLorenzdashAlcatelLongName& ,
        const A8StandardElectrikLorenzdashAlcatelLongName& ,
        const A9StandardElectrikLorenzdashAlcatelLongName& 
      ) ;
} ;

XIsAlsoALongName:: XIsAlsoALongName(
        const A1StandardElectrikLorenzdashAlcatelLongName& ,
        const A2StandardElectrikLorenzdashAlcatelLongName& ,
        const A3StandardElectrikLorenzdashAlcatelLongName& ,
        const A4StandardElectrikLorenzdashAlcatelLongName& ,
        const A5StandardElectrikLorenzdashAlcatelLongName& ,
        const A6StandardElectrikLorenzdashAlcatelLongName& ,
        const A7StandardElectrikLorenzdashAlcatelLongName& ,
        const A8StandardElectrikLorenzdashAlcatelLongName& ,
        const A9StandardElectrikLorenzdashAlcatelLongName& 
      ) {
	printf( "the big ctor\n");
};

int main() {
	A1StandardElectrikLorenzdashAlcatelLongName a1;
	A2StandardElectrikLorenzdashAlcatelLongName a2;
	A3StandardElectrikLorenzdashAlcatelLongName a3;
	A4StandardElectrikLorenzdashAlcatelLongName a4;
	A5StandardElectrikLorenzdashAlcatelLongName a5;
	A6StandardElectrikLorenzdashAlcatelLongName a6;
	A7StandardElectrikLorenzdashAlcatelLongName a7;
	A8StandardElectrikLorenzdashAlcatelLongName a8;
	A9StandardElectrikLorenzdashAlcatelLongName a9;

	XIsAlsoALongName b( a1, a2, a3, a4, a5, a6, a7, a8, a9);

	return 0;
}

Regards

David C Binderman     Dept US/ESI, Bau 60, SEL-Alcatel AG, Lorenz Strasse 10,
D-7000 Stuttgart 40, Germany      dcb@us-es.sel.de   Tel: +49 711 821 3841