[ROOT] TGraph vectors

From: Matthew D Wood (mdwood@lotus.phys.nwu.edu)
Date: Wed Mar 24 2004 - 20:12:54 MET


Hi.  I am using root version 3.10/02 and gcc version 2.96.  I have a
question with regard to the use of the STL class 'vector'.  Specifically I
have been using vectors of type TGraph*.  What I would like to do is to
compile a function that operates on a TGraph vector.  So a simple example
is:

#include <vector>
#include "TGraph.h"

int vec_size (vector< TGraph* > vgraph ) {
  cout << vgraph.size() << endl;
  return 0;
}

I compile this with:

root [0] .L vec_size.C+

and I get a library called vec_size_C.so.  However once this library is
loaded any vectors I create interactively don't seem to work properly --
even if I don't use the function I defined:

root [0] .L vec_size_C.so
root [1] #include<vector>
root [2] vector<TGraph*> vgr;
root [3] vgr.size()
Error: Can't call vector<TGraph*,allocator<TGraph*> >::size() in current
scope FILE:(tmpfile) LINE:1
Possible candidates are...
filename       line:size busy function type and name  (in
vector<TGraph*,allocator<TGraph*> >)
Error: Symbol vgr is not defined in current scope  FILE:(tmpfile) LINE:1
Error: Failed to evaluate vgr.size()Possible candidates are...
filename       line:size busy function type and name
*** Interpreter error recovered ***

The same commands work fine if I don't load the library.  Any idea what
I'm doing wrong here?  Thanks.

Matthew Wood



This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:06 MET