Hello,
Although the title of this post is similar to a previous post of mine (How to use ClassDefInline?), I still can’t seem to get ClassDefInline to work as expected in non-interactive mode (interactive mode works fine).
foo.h
#include <Rtypes.h>
class Foo {
public:
Foo() {}
Foo(int foo) : foo_(foo) {}
int GetFoo() { return foo_; }
private:
int foo_ = 42;
ClassDefInlineNV(Foo, 1);
};
main.cc
#include "foo.h"
#include <iostream>
#include <TFile.h>
int main() {
Foo foo(123);
TFile f("foo.root", "RECREATE");
f.WriteObject(&foo, "foo_object");
f.Close();
TFile f2("foo.root");
Foo* foo2 = nullptr;
f2.GetObject("foo_object", foo2);
std::cout << foo2->GetFoo() << std::endl;
return 0;
}
Output
Error in <TClass::LoadClassInfo>: no interpreter information for class Foo is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class Foo is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class Foo is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class Foo is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class Foo is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class Foo is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class Foo is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class Foo is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class Foo is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class Foo is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class Foo is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class Foo is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class Foo is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class Foo is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class Foo is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class Foo is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class Foo is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class Foo is available even though it has a TClass initialization routine.
Error in <TClass::RegisterStreamerInfo>: Register StreamerInfo for Foo on non-empty slot (-1).
Error in <TClass::LoadClassInfo>: no interpreter information for class Foo is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class Foo is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class Foo is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class Foo is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class Foo is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class Foo is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class Foo is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class Foo is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class Foo is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class Foo is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class Foo is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class Foo is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class Foo is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class Foo is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class Foo is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class Foo is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class Foo is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class Foo is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class Foo is available even though it has a TClass initialization routine.
42
Running the code in main.cc
in the interpreter works just fine. How should I be passing the interpreter information in non-interactive mode?
Cheers,
Ahmad
ROOT Version: v6.18/04
Platform: Ubuntu 16.04
Compiler: Not Provided