ROOT and STL (was Re: [ROOT] PyROOT and STL containers.)

From: Maxim Nikulin (nikulin@gorodok.net)
Date: Mon Nov 01 2004 - 09:50:30 MET


Hi,

Brett Viren wrote:
> I'm trying to use PyROOT with classes that return STL containers.  Eg
> I have a class that reutrns an "std::vector<std::string>".  Some of
> the std::vector methods work but some don't, particularly operator[].
> 
> print vs
> <__main__.vector<string> object at 0x41d1124c>
> print vs.size()
> 37
> print vs[0]
>  *** Break *** illegal instruction

I'm afraid the problem is more general. I see STL related trouble in 
ROOT without the Python wrapping.

My full script gives "illegal instruction". The shortest shows different 
behavior:

<session>
[nikulin@lx13cmd:root]$ cat vector_fail.C
{
    vector<Double_t> v;
    Int_t i;
    for (i = 0; i < 10000; ++i) {
       v.push_back(100);
    }
}
[nikulin@lx13cmd:root]$ root
   *******************************************
   *                                         *
   *        W E L C O M E  to  R O O T       *
   *                                         *
   *   Version   4.01/03    5 October 2004   *
   *                                         *
   *  You are welcome to visit our Web site  *
   *          http://root.cern.ch            *
   *                                         *
   *******************************************

FreeType Engine v2.1.3 used to render TrueType fonts.
Compiled for linux with thread support.

CINT/ROOT C/C++ Interpreter version 5.15.153, Sep 20 2004
Type ? for help. Commands must be C++ statements.
Enclose multiple statements between { }.
root [0] #include <vector>
root [1] .x vector_fail.C
Loop Compile Internal Error: Illegal instruction 0  FILE:vector_fail.C 
LINE:4

  *** Break *** segmentation violation

</session>
root.exe is sleeping...

ROOT: CVS, September, 29
OS: Fedora Core 2
Hardware: Intel Pentium 4

-- 
Maxim Nikulin



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