Project

General

Profile

Bug #23075

TFileDirectory::makeAndRegister(std::string, ...): couldn't deduce template parameter ‘T’

Added by Gianluca Petrillo about 1 month ago. Updated about 1 month ago.

Status:
Resolved
Priority:
Normal
Assignee:
Target version:
-
Start date:
08/07/2019
Due date:
% Done:

100%

Estimated time:
Experiment:
ICARUS
Duration:

Description

The implementation of TFileDirectory::makeAndRegister(std::string const& name, std::string const& title, ARGS... args) const (art_root_io:source:art_root_io/TFileDirectory.h#L113) appears to be defective.
When calling TFileDirectory::makeAndRegister(const char* name, const char* title, ARGS... args) const it does not specify the template parameter of the function, making the compiler panic:

/cvmfs/larsoft.opensciencegrid.org/products/art_root_io/v1_00_07/include/art_root_io/TFileDirectory.h: In instantiation of ‘T* art::TFileDirectory::makeAndRegister(const string&, const string&, ARGS ...) const [with T = TProfile; ARGS = {long unsigned int, double*}; std::__cxx11::string = std::__cxx11::basic_string<char>]’:
[...]
/cvmfs/larsoft.opensciencegrid.org/products/art_root_io/v1_00_07/include/art_root_io/TFileDirectory.h:118:10: error: no matching function for call to ‘art::TFileDirectory::makeAndRegister(const char*, const char*, long unsigned int&, double*&) const’
/cvmfs/larsoft.opensciencegrid.org/products/art_root_io/v1_00_07/include/art_root_io/TFileDirectory.h:97:3: note: candidate: template<class T, class ... ARGS> T* art::TFileDirectory::makeAndRegister(const char*, const char*, ARGS ...) const
   TFileDirectory::makeAndRegister(char const* name,
   ^~~~~~~~~~~~~~
/cvmfs/larsoft.opensciencegrid.org/products/art_root_io/v1_00_07/include/art_root_io/TFileDirectory.h:97:3: note:   template argument deduction/substitution failed:
/cvmfs/larsoft.opensciencegrid.org/products/art_root_io/v1_00_07/include/art_root_io/TFileDirectory.h:118:10: note:   couldn't deduce template parameter ‘T’
     auto ret = makeAndRegister(name.c_str(), title.c_str(), args...);
          ^~~
/cvmfs/larsoft.opensciencegrid.org/products/art_root_io/v1_00_07/include/art_root_io/TFileDirectory.h:113:3: note: candidate: template<class T, class ... ARGS> T* art::TFileDirectory::makeAndRegister(const string&, const string&, ARGS ...) const
   TFileDirectory::makeAndRegister(std::string const& name,
   ^~~~~~~~~~~~~~
/cvmfs/larsoft.opensciencegrid.org/products/art_root_io/v1_00_07/include/art_root_io/TFileDirectory.h:113:3: note:   template argument deduction/substitution failed:
/cvmfs/larsoft.opensciencegrid.org/products/art_root_io/v1_00_07/include/art_root_io/TFileDirectory.h:118:10: note:   couldn't deduce template parameter ‘T’
     auto ret = makeAndRegister(name.c_str(), title.c_str(), args...);
          ^~~

This is art_root_io v1_00_07.

History

#1 Updated by Kyle Knoepfel about 1 month ago

  • Assignee set to Kyle Knoepfel
  • Status changed from New to Assigned

Oops.

#2 Updated by Kyle Knoepfel about 1 month ago

  • Scope deleted (Internal)
  • % Done changed from 0 to 100
  • Status changed from Assigned to Resolved
  • Category deleted (I/O)
  • Project changed from art to art_root_io
  • Experiment ICARUS added
  • Experiment deleted (-)

Fixed with commit art_root_io:e95171.



Also available in: Atom PDF