Skip to content

[PyROOT] Type UInt64_t/unsigned long long can cause problems in template resolutions #16064

Open
@guitargeek

Description

@guitargeek

Check duplicate issues.

  • Checked for duplicates

Description

There was a regression in using unsigned longs in ROOT 6.32 with the cppyy upgrade.

I open the issue here because it can't be reproduced with upstream cppyy, so this is definitely a PyROOT issue.

Reproducer

import cppyy
import ROOT

cppyy.gbl.std.pair["int", "unsigned long long"]() # works!
cppyy.gbl.std.function["void(int, int)"]() # works!
cppyy.gbl.std.function["void(int, unsigned long long)"]() # doesn't work!

Gives you this output:

Traceback (most recent call last):
  File "/home/rembserj/root-support/forum/problems-with-onpartialresultslot-in-new-root-version-6-32-02/simple.py", line 6, in <module>
    cppyy.gbl.std.function["void(int, unsigned long long)"]() # doesn't work!
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/rembserj/spaces/master/install/lib/root/cppyy/_cpython_cppyy.py", line 88, in __getitem__
    pyclass = _backend.MakeCppTemplateClass(*newargs)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: 'std::function<void(int,unsigned long long)>' is not a known C++ class

ROOT version

master

Installation method

build from source

Operating system

Arch Linux

Additional context

https://root-forum.cern.ch/t/problems-with-onpartialresultslot-in-new-root-version-6-32-02/60257

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions