[PyROOT] cppyy selects explicit template instantiation
メンテナーはふだん 1 日以内に返信
@guitargeek がすでに取り組んでいます。
2026年2月19日 から。
評価
この issue はまだ評価されていません。
説明
Check duplicate issues.
- Checked for duplicates
Description
When a function takes a mandatory template argument that also cannot be deduced, cppyy sometimes uses an explicit instantiation.
Reproducer
>>> import ROOT
>>> ROOT.gInterpreter.Declare("template <typename T> std::size_t get_size() { return sizeof(T); }")
True
>>> ROOT.gInterpreter.Declare("template std::size_t get_size<int>();")
True
>>> ROOT.get_size()
4
>>> ROOT.get_size[""]()
4
I would expect the call to fail:
>>> import ROOT
>>> ROOT.gInterpreter.Declare("template <typename T> std::size_t get_size() { return sizeof(T); }")
True
>>> ROOT.get_size()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: Template method resolution failed:
Failed to instantiate "get_size()"
>>> ROOT.get_size[""]()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: Could not find "get_size<>" (set cppyy.set_debug() for C++ errors):
Failed to instantiate "get_size<>()"
Interestingly, the behavior is different after it failed once:
>>> ROOT.gInterpreter.Declare("template std::size_t get_size<int>();")
True
>>> ROOT.get_size()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: Template method resolution failed:
Failed to instantiate "get_size()"
>>> ROOT.get_size[""]()
4
>>> ROOT.get_size()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: Template method resolution failed:
Failed to instantiate "get_size()"
Now it only works with get_size[""]()...?!
ROOT version
master
Installation method
from source
Operating system
Linux
Additional context
No response
- 主要言語
- C++
- スター
- 3.3k
- フォーク
- 1.6k
- 平均マージ
- 2日 7時間
- マージ済み PR(30日)
- 180
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
root-project/root のほかの issue
-
thisroot.sh: wrong ROOTSYS in zsh when the shell's command line has a newline対応中かも @dpiparo が 7 日前に担当しました。 オープンbug in:Build System
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
root-project/root#23746 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
-
[tmva][sofie] Inputs of unsupported type (e.g. float16) give code that does not compile instead of an error対応中かも @lmoneta が 17 日前に担当しました。 オープンAI-Assisted bug in:SOFIE
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
root-project/root#23655 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
-
[graph] TScatter / TScatter2D stops drawing remaining points if a non-positive value is encountered in log scale対応中かも @muntasir-396 が 1 日前に担当しました。 オープンbug in:Graphics
root-project/root#23833 · コメント 1 件 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
-
TDataMember::GetOffset interfers to TDataMember::GetOffsetCint対応中かも @pcanal が 4 日前に担当しました。 オープンbug in:Core Libraries
難易度 4/5 3〜5日 初心者へのやさしさ 48/100
root-project/root#23777 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
-
`TChain::GetEntries` internal caching ineffective?対応中かも @pcanal が 10 日前に担当しました。 オープンimprovement in:TTree
root-project/root#23738 · コメント 6 件 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
root-project/root の issue をすべて見る
似ている issue
-
[Bug] [Go] Ack returns nil when the server answers with a non-OK status対応中かも @leizhiyuan が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
apache/rocketmq-clients#1465 ·
メンテナーはふだん 2 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
KhronosGroup/Vulkan-Tutorial#534 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
メンテナーはふだん 2 日以内に返信
-
bug IO
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
MrNeRF/LichtFeld-Studio#3824 ·
メンテナーはふだん 1 日以内に返信
-
pnnx: manual tanh GELU fusion loses the approximation mode対応中かも @ktz03 が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
Tencent/ncnn#7175 · リアクション 1 件 ·
メンテナーはふだん 1 日以内に返信