Error in <TClass::BuildRealData>: Inspection for allocator<char> not supported!

Maybe a bug?
In the last couple of versions of ROOT, the TBrowser has lost the ability to display strings in data files. In my file, I have a branch of my own class and inside it there is say std::vector<std::string>. Before, I could expand the branch in the TBrowser and the vector and double click on data() for the TBrowser to make a histogram of the strings - now clearly this is a bit of a stupid concept but at least it’s an easy clickable way to see a string in the data. I have a header tree with one entry of a header class for example in my files and these have strings in them (no vector). Similarly with older versions of ROOT, I could double click on data() to get a 1 bin histogram with the string as the bin label. This is actually very useful to inspect a file quickly without all the bollocks of instantiating an object and setting branch address and loading shared libraries etc etc.

Now, when I double click on it, nothing happens and I get:

root [2] Warning in <TStreamerInfo::Build>: reverse_iterator<__wrap_iter<const char*> >: base class iterator<random_access_iterator_tag,char,long,const char*,const char&> has no streamer or dictionary it will not be saved
Error in <TClass::BuildRealData>: Inspection for allocator<char> not supported!

printed out in the terminal.

Is there anyway to recover this functionality?

Nothing has changed in the way I generate files or dictionaries to go with the shared libraries.

Many thanks,
Laurie

root --version
ROOT Version: 6.24/00
Built for macosx64 on May 10 2021, 16:10:00
From @

MacOS 11.4

clang --version
Apple clang version 12.0.5 (clang-1205.0.22.9)
Target: x86_64-apple-darwin20.5.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

@pcanal might now?

Also, @linev this might be a good opportunity to introduce the user to RBrowser and check that the feature he’s talking about works well there?

Hi,

Concerning RBrowser - it is missing feature. But I could add support for it.
Are there example file of reasonable size?

Regards,
Sergey

Note that you can view the data from the prompt:

Header->Scan("Header.rootVersion.c_str()");
Header->Draw("Header.rootVersion.c_str()");

I can reproduce the problem you see and it is likely an issue somewhere in the GUI classes (@bellenot ?) where were are looking for something we shouldn’t (look like I/O information about the iterator).

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.