Re: [ROOT] rootcint produces invalid code for templates on Win32

From: Christian Holm Christensen (cholm@hehi03.nbi.dk)
Date: Sun Oct 14 2001 - 16:58:27 MEST


Hi, 

On Sat, 13 Oct 2001 11:46:58 +0200
Fons Rademakers <Fons.Rademakers@cern.ch> wrote
concerning "Re: [ROOT] rootcint produces invalid code for templates on Win32":
> Hi Peter,
> 
>   this is the only legal syntax for explicit template specialization.
> The problem is with the old VC++6. The only solution is to make a little
> shell script for Windows that filters the code in a dialect acceptable
> to VC++6.

Since you need Cygwin to build ROOT on Windoze, you should have bash
and sed installed.   Hence a script like 

  #!/bin/bash
  
  for i in $* ; do 
      if test -f $i.new ; then 
	  rm -f $i.new
      fi
      sed 's,^template <>,,' < $i > $i.new
  done 

should do the trick.  One can ofcourse also do a Perl script, which is
probably only one line long! To make the whole thing transparent, make
another shell script that goes like 

  output=$1
  shift 
  rootcint -f $output -c $* 
  sed 's,^template <>,,' < $output > $output.tmp
  mv $output.tmp $output 

and use that as your rootcint. 

Hope that helps you. 

Yours, 

Christian Holm Christensen -------------------------------------------
Address: Sankt Hansgade 23, 1. th.           Phone:  (+45) 35 35 96 91 
         DK-2200 Copenhagen N                Cell:   (+45) 28 82 16 23
         Denmark                             Office: (+45) 353  25 305 
Email:   cholm@nbi.dk                        Web:    www.nbi.dk/~cholm



This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:51:02 MET