[ROOT] on "almost-uniqueness" of _R__UNIQUE__

From: Alexei Dvoretskii (dvoretsk@SLAC.stanford.edu)
Date: Tue Feb 18 2003 - 07:36:56 MET


I am compiling a $(PACKAGE)Cint.cc class into a shared library. (__CINT__
macro undefined)

Suppose $(PACKAGE)Cint.h has

#include "A.h"
#include "B.h"

A has on line 50:

ClassDefT2(A,T)

B has on line 50:

ClassDefT2(B,T)

then there will be a conflict for a doubly defined variable
R__dummyholder50. I encountered this in 3.03-09 but it seems to be there
for the CVS HEAD as well.

_R_UNIQUE__ is defined in RConfig.h

/* produce an identifier that is almost unique inside a file */
#ifndef __CINT__
#   define _R__JOIN_(X,Y) _NAME2_(X,Y)
#   define _R__UNIQUE_(X) _R__JOIN_(X,__LINE__)
#else
    /* Currently CINT does not really mind to have duplicates and     */
    /* does not work correctly as far as merging tokens is concerned. */
#   define _R__UNIQUE_(X) X
#endif



This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:09 MET