Uploaded image for project: 'ROOT'
  1. ROOT
  2. ROOT-10530

Cling fails to compile some valid code

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Open (View Workflow)
    • Priority: High
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: None
    • Labels:
      None
    • Environment:

      LHCb Nightly builds against ROOT 6.20-patches

    • Development:

      Description

      I'm getting a compilation error from cling for code that compiles fine with gcc:

      #define GAUDI_V20_COMPAT
      #include "Functors/Function.h"
      auto f = std::make_unique<Functors::Functor<std::any ()>>( ::Functors::AcceptAll{} );
      

      When I run it using the attached script I get the following:

      $ bash functors-crash.txt
         ------------------------------------------------------------------
        | Welcome to ROOT 6.19/03                        https://root.cern |
        | (c) 1995-2020, The ROOT Team; conception: R. Brun, F. Rademakers |
        | Built for linuxx8664gcc on Jan 27 2020, 00:29:00                 |
        | From heads/v6-20-00-patches@v6-19-02-37-g7f8bc35                 |
        | Try '.help', '.demo', '.license', '.credits', '.quit'/'.q'       |
         ------------------------------------------------------------------
       
      In file included from ROOT_prompt_1:1:
      In file included from /cvmfs/lhcbdev.cern.ch/nightlies/lhcb-lcg-dev4/1169/Rec_HEAD/InstallArea/x86_64-centos7-gcc9-dbg/include/Functors/Function.h:12:
      /cvmfs/lhcbdev.cern.ch/nightlies/lhcb-lcg-dev4/1169/Rec_HEAD/InstallArea/x86_64-centos7-gcc9-dbg/include/Functors/Core.h:210:25: error: no matching constructor for initialization of 'std::unique_ptr<IFunctor>'
          Functor( F func ) : m_functor( std::make_unique<FunctorImpl<F>>( std::move( func ) ) ) {}
                              ^          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      /cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/9.2.0-afc57/x86_64-centos7/bin/../lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/bits/unique_ptr.h:849:34: note: in instantiation of function template specialization 'Functors::Functor<std::any ()>::Functor<Functors::AcceptAll>' requested here
          { return unique_ptr<_Tp>(new _Tp(std::forward<_Args>(__args)...)); }
                                       ^
      ROOT_prompt_2:1:15: note: in instantiation of function template specialization 'std::make_unique<Functors::Functor<std::any ()>, Functors::AcceptAll>' requested here
      auto f = std::make_unique<Functors::Functor<std::any ()>>( ::Functors::AcceptAll{} );
                    ^
      /cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/9.2.0-afc57/x86_64-centos7/bin/../lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/bits/unique_ptr.h:203:2: note: candidate constructor not viable: no known conversion from 'typename _MakeUniq<FunctorImpl<AcceptAll> >::__single_object' (aka 'unique_ptr<Functors::Functor<std::any ()>::FunctorImpl<Functors::AcceptAll> >') to
            'std::unique_ptr<Functors::Functor<std::any ()>::IFunctor, std::default_delete<Functors::Functor<std::any ()>::IFunctor> >::pointer' (aka 'Functors::Functor<std::any ()>::IFunctor *') for 1st argument
              unique_ptr(pointer __p) noexcept
              ^
      /cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/9.2.0-afc57/x86_64-centos7/bin/../lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/bits/unique_ptr.h:242:12: note: candidate constructor not viable: no known conversion from 'typename _MakeUniq<FunctorImpl<AcceptAll> >::__single_object' (aka 'unique_ptr<Functors::Functor<std::any ()>::FunctorImpl<Functors::AcceptAll> >') to 'std::nullptr_t'
            (aka 'nullptr_t') for 1st argument
              constexpr unique_ptr(nullptr_t) noexcept
                        ^
      /cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/9.2.0-afc57/x86_64-centos7/bin/../lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/bits/unique_ptr.h:249:7: note: candidate constructor not viable: no known conversion from 'unique_ptr<Functors::Functor<std::any ()>::FunctorImpl<Functors::AcceptAll>, default_delete<Functors::Functor<std::any ()>::FunctorImpl<Functors::AcceptAll>>>' to
            'unique_ptr<Functors::Functor<std::any ()>::IFunctor, default_delete<Functors::Functor<std::any ()>::IFunctor>>' for 1st argument
            unique_ptr(unique_ptr&& __u) noexcept
            ^
      /cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/9.2.0-afc57/x86_64-centos7/bin/../lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/bits/unique_ptr.h:406:7: note: candidate constructor not viable: no known conversion from 'unique_ptr<Functors::Functor<std::any ()>::FunctorImpl<Functors::AcceptAll>, default_delete<Functors::Functor<std::any ()>::FunctorImpl<Functors::AcceptAll>>>' to 'const
            unique_ptr<Functors::Functor<std::any ()>::IFunctor, default_delete<Functors::Functor<std::any ()>::IFunctor>>' for 1st argument
            unique_ptr(const unique_ptr&) = delete;
            ^
      /cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/9.2.0-afc57/x86_64-centos7/bin/../lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/bits/unique_ptr.h:263:2: note: candidate template ignored: requirement '__and_<__and_<is_convertible<FunctorImpl<AcceptAll> *, IFunctor *>, __not_<is_array<FunctorImpl<AcceptAll> > > >, is_convertible<default_delete<FunctorImpl<AcceptAll> >, default_delete<IFunctor> >
            >::value' was not satisfied [with _Up = Functors::Functor<std::any ()>::FunctorImpl<Functors::AcceptAll>, _Ep = std::default_delete<Functors::Functor<std::any ()>::FunctorImpl<Functors::AcceptAll> >]
              unique_ptr(unique_ptr<_Up, _Ep>&& __u) noexcept
              ^
      /cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/9.2.0-afc57/x86_64-centos7/bin/../lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/bits/unique_ptr.h:273:2: note: candidate template ignored: could not match 'auto_ptr' against 'unique_ptr'
              unique_ptr(auto_ptr<_Up>&& __u) noexcept;
              ^
      /cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/9.2.0-afc57/x86_64-centos7/bin/../lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/bits/unique_ptr.h:191:12: note: candidate constructor template not viable: requires 0 arguments, but 1 was provided
              constexpr unique_ptr() noexcept
                        ^
      /cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/9.2.0-afc57/x86_64-centos7/bin/../lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/bits/unique_ptr.h:216:2: note: candidate constructor template not viable: requires 2 arguments, but 1 was provided
              unique_ptr(pointer __p, const deleter_type& __d) noexcept
              ^
      /cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/9.2.0-afc57/x86_64-centos7/bin/../lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/bits/unique_ptr.h:228:2: note: candidate constructor template not viable: requires 2 arguments, but 1 was provided
              unique_ptr(pointer __p,
              ^
      /cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/9.2.0-afc57/x86_64-centos7/bin/../lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/bits/unique_ptr.h:236:2: note: candidate constructor template not viable: requires 2 arguments, but 1 was provided
              unique_ptr(pointer,
              ^
      In module 'ROOTNTuple' imported from input_line_25:1:
      /cvmfs/sft.cern.ch/lcg/releases/gcc/9.2.0-afc57/x86_64-centos7/bin/../lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/variant:1654:14: error: no matching function for call to '__do_visit'
            return __do_visit(std::forward<_Visitor>(__visitor),
                   ^~~~~~~~~~
      /cvmfs/lhcbdev.cern.ch/nightlies/lhcb-lcg-dev4/1169/Rec_HEAD/InstallArea/x86_64-centos7-gcc9-dbg/include/Functors/Core.h:163:23: note: in instantiation of function template specialization 'std::visit<std::reference_wrapper<const Functors::AcceptAll>>' requested here
                return std::visit( std::move( f ), input... );
                            ^
      /cvmfs/lhcbdev.cern.ch/nightlies/lhcb-lcg-dev4/1169/Rec_HEAD/InstallArea/x86_64-centos7-gcc9-dbg/include/Functors/Core.h:155:7: note: in instantiation of member function 'Functors::Functor<std::any ()>::FunctorImpl<Functors::AcceptAll>::operator()' requested here
            FunctorImpl( F f ) : m_f( std::move( f ) ) {}
            ^
      /cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/9.2.0-afc57/x86_64-centos7/bin/../lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/bits/unique_ptr.h:849:34: note: in instantiation of member function 'Functors::Functor<std::any ()>::FunctorImpl<Functors::AcceptAll>::FunctorImpl' requested here
          { return unique_ptr<_Tp>(new _Tp(std::forward<_Args>(__args)...)); }
                                       ^
      /cvmfs/lhcbdev.cern.ch/nightlies/lhcb-lcg-dev4/1169/Rec_HEAD/InstallArea/x86_64-centos7-gcc9-dbg/include/Functors/Core.h:210:41: note: in instantiation of function template specialization 'std::make_unique<Functors::Functor<std::any ()>::FunctorImpl<Functors::AcceptAll>, Functors::AcceptAll>' requested here
          Functor( F func ) : m_functor( std::make_unique<FunctorImpl<F>>( std::move( func ) ) ) {}
                                              ^
      /cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/9.2.0-afc57/x86_64-centos7/bin/../lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/bits/unique_ptr.h:849:34: note: in instantiation of function template specialization 'Functors::Functor<std::any ()>::Functor<Functors::AcceptAll>' requested here
          { return unique_ptr<_Tp>(new _Tp(std::forward<_Args>(__args)...)); }
                                       ^
      ROOT_prompt_2:1:15: note: in instantiation of function template specialization 'std::make_unique<Functors::Functor<std::any ()>, Functors::AcceptAll>' requested here
      auto f = std::make_unique<Functors::Functor<std::any ()>>( ::Functors::AcceptAll{} );
                    ^
      /cvmfs/sft.cern.ch/lcg/releases/gcc/9.2.0-afc57/x86_64-centos7/bin/../lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/variant:1629:5: note: candidate template ignored: couldn't infer template argument '__use_index'
          __do_visit(_Visitor&& __visitor, _Variants&&... __variants)
          ^
      /cvmfs/sft.cern.ch/lcg/releases/gcc/9.2.0-afc57/x86_64-centos7/bin/../lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/variant:1654:14: error: no matching function for call to '__do_visit'
            return __do_visit(std::forward<_Visitor>(__visitor),
                   ^~~~~~~~~~
      /cvmfs/lhcbdev.cern.ch/nightlies/lhcb-lcg-dev4/1169/Rec_HEAD/InstallArea/x86_64-centos7-gcc9-dbg/include/Functors/Core.h:171:68: note: in instantiation of function template specialization 'std::visit<const std::reference_wrapper<const Functors::AcceptAll> &>' requested here
                return [f = std::move( f )]( auto&&... x ) { return std::visit( f, x... ); };
                                                                         ^
      /cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/9.2.0-afc57/x86_64-centos7/bin/../lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/type_traits:2336:7: note: in instantiation of function template specialization 'Functors::Functor<std::any ()>::FunctorImpl<Functors::AcceptAll>::prepare(const Functors::TopLevelInfo &)::(anonymous class)::operator()<>' requested here
            std::declval<_Fn>()(std::declval<_Args>()...)
            ^
      /cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/9.2.0-afc57/x86_64-centos7/bin/../lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/type_traits:2347:24: note: while substituting deduced template arguments into function template '_S_test' [with _Fn = (lambda at /cvmfs/lhcbdev.cern.ch/nightlies/lhcb-lcg-dev4/1169/Rec_HEAD/InstallArea/x86_64-centos7-gcc9-dbg/include/Functors/Core.h:171:18) &, _Args =
            (no value)]
            typedef decltype(_S_test<_Functor, _ArgTypes...>(0)) type;
                             ^
      /cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/9.2.0-afc57/x86_64-centos7/bin/../lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/type_traits:2353:14: note: in instantiation of template class 'std::__result_of_impl<false, false, (lambda at /cvmfs/lhcbdev.cern.ch/nightlies/lhcb-lcg-dev4/1169/Rec_HEAD/InstallArea/x86_64-centos7-gcc9-dbg/include/Functors/Core.h:171:18) &>' requested here
          : public __result_of_impl<
                   ^
      /cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/9.2.0-afc57/x86_64-centos7/bin/../lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/type_traits:2366:14: note: in instantiation of template class 'std::__invoke_result<(lambda at /cvmfs/lhcbdev.cern.ch/nightlies/lhcb-lcg-dev4/1169/Rec_HEAD/InstallArea/x86_64-centos7-gcc9-dbg/include/Functors/Core.h:171:18) &>' requested here
          : public __invoke_result<_Functor, _ArgTypes...>
                   ^
      /cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/9.2.0-afc57/x86_64-centos7/bin/../lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/bits/std_function.h:378:35: note: (skipping 4 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all)
                     typename _Res2 = typename result_of<_Func&(_ArgTypes...)>::type>
                                               ^
      /cvmfs/lhcbdev.cern.ch/nightlies/lhcb-lcg-dev4/1169/Rec_HEAD/InstallArea/x86_64-centos7-gcc9-dbg/include/Functors/Core.h:155:7: note: in instantiation of member function 'Functors::Functor<std::any ()>::FunctorImpl<Functors::AcceptAll>::prepare' requested here
            FunctorImpl( F f ) : m_f( std::move( f ) ) {}
            ^
      /cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/9.2.0-afc57/x86_64-centos7/bin/../lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/bits/unique_ptr.h:849:34: note: in instantiation of member function 'Functors::Functor<std::any ()>::FunctorImpl<Functors::AcceptAll>::FunctorImpl' requested here
          { return unique_ptr<_Tp>(new _Tp(std::forward<_Args>(__args)...)); }
                                       ^
      /cvmfs/lhcbdev.cern.ch/nightlies/lhcb-lcg-dev4/1169/Rec_HEAD/InstallArea/x86_64-centos7-gcc9-dbg/include/Functors/Core.h:210:41: note: in instantiation of function template specialization 'std::make_unique<Functors::Functor<std::any ()>::FunctorImpl<Functors::AcceptAll>, Functors::AcceptAll>' requested here
          Functor( F func ) : m_functor( std::make_unique<FunctorImpl<F>>( std::move( func ) ) ) {}
                                              ^
      /cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/9.2.0-afc57/x86_64-centos7/bin/../lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/bits/unique_ptr.h:849:34: note: in instantiation of function template specialization 'Functors::Functor<std::any ()>::Functor<Functors::AcceptAll>' requested here
          { return unique_ptr<_Tp>(new _Tp(std::forward<_Args>(__args)...)); }
                                       ^
      ROOT_prompt_2:1:15: note: in instantiation of function template specialization 'std::make_unique<Functors::Functor<std::any ()>, Functors::AcceptAll>' requested here
      auto f = std::make_unique<Functors::Functor<std::any ()>>( ::Functors::AcceptAll{} );
                    ^
      /cvmfs/sft.cern.ch/lcg/releases/gcc/9.2.0-afc57/x86_64-centos7/bin/../lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/variant:1629:5: note: candidate template ignored: couldn't infer template argument '__use_index'
          __do_visit(_Visitor&& __visitor, _Variants&&... __variants)
          ^
      In file included from ROOT_prompt_1:1:
      In file included from /cvmfs/lhcbdev.cern.ch/nightlies/lhcb-lcg-dev4/1169/Rec_HEAD/InstallArea/x86_64-centos7-gcc9-dbg/include/Functors/Function.h:12:
      /cvmfs/lhcbdev.cern.ch/nightlies/lhcb-lcg-dev4/1169/Rec_HEAD/InstallArea/x86_64-centos7-gcc9-dbg/include/Functors/Core.h:171:18: error: no viable conversion from returned value of type '(lambda at /cvmfs/lhcbdev.cern.ch/nightlies/lhcb-lcg-dev4/1169/Rec_HEAD/InstallArea/x86_64-centos7-gcc9-dbg/include/Functors/Core.h:171:18)' to function return type
            'Functors::Functor<std::any ()>::prepared_type' (aka 'function<std::any ()>')
                return [f = std::move( f )]( auto&&... x ) { return std::visit( f, x... ); };
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      /cvmfs/lhcbdev.cern.ch/nightlies/lhcb-lcg-dev4/1169/Rec_HEAD/InstallArea/x86_64-centos7-gcc9-dbg/include/Functors/Core.h:155:7: note: in instantiation of member function 'Functors::Functor<std::any ()>::FunctorImpl<Functors::AcceptAll>::prepare' requested here
            FunctorImpl( F f ) : m_f( std::move( f ) ) {}
            ^
      /cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/9.2.0-afc57/x86_64-centos7/bin/../lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/bits/unique_ptr.h:849:34: note: in instantiation of member function 'Functors::Functor<std::any ()>::FunctorImpl<Functors::AcceptAll>::FunctorImpl' requested here
          { return unique_ptr<_Tp>(new _Tp(std::forward<_Args>(__args)...)); }
                                       ^
      /cvmfs/lhcbdev.cern.ch/nightlies/lhcb-lcg-dev4/1169/Rec_HEAD/InstallArea/x86_64-centos7-gcc9-dbg/include/Functors/Core.h:210:41: note: in instantiation of function template specialization 'std::make_unique<Functors::Functor<std::any ()>::FunctorImpl<Functors::AcceptAll>, Functors::AcceptAll>' requested here
          Functor( F func ) : m_functor( std::make_unique<FunctorImpl<F>>( std::move( func ) ) ) {}
                                              ^
      /cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/9.2.0-afc57/x86_64-centos7/bin/../lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/bits/unique_ptr.h:849:34: note: in instantiation of function template specialization 'Functors::Functor<std::any ()>::Functor<Functors::AcceptAll>' requested here
          { return unique_ptr<_Tp>(new _Tp(std::forward<_Args>(__args)...)); }
                                       ^
      ROOT_prompt_2:1:15: note: in instantiation of function template specialization 'std::make_unique<Functors::Functor<std::any ()>, Functors::AcceptAll>' requested here
      auto f = std::make_unique<Functors::Functor<std::any ()>>( ::Functors::AcceptAll{} );
                    ^
      /cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/9.2.0-afc57/x86_64-centos7/bin/../lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/bits/std_function.h:405:7: note: candidate constructor not viable: no known conversion from '(lambda at /cvmfs/lhcbdev.cern.ch/nightlies/lhcb-lcg-dev4/1169/Rec_HEAD/InstallArea/x86_64-centos7-gcc9-dbg/include/Functors/Core.h:171:18)' to 'std::nullptr_t' (aka 'nullptr_t') for
            1st argument
            function(nullptr_t) noexcept
            ^
      /cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/9.2.0-afc57/x86_64-centos7/bin/../lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/bits/std_function.h:416:7: note: candidate constructor not viable: no known conversion from '(lambda at /cvmfs/lhcbdev.cern.ch/nightlies/lhcb-lcg-dev4/1169/Rec_HEAD/InstallArea/x86_64-centos7-gcc9-dbg/include/Functors/Core.h:171:18)' to 'const std::function<std::any ()> &'
            for 1st argument
            function(const function& __x);
            ^
      /cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/9.2.0-afc57/x86_64-centos7/bin/../lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/bits/std_function.h:425:7: note: candidate constructor not viable: no known conversion from '(lambda at /cvmfs/lhcbdev.cern.ch/nightlies/lhcb-lcg-dev4/1169/Rec_HEAD/InstallArea/x86_64-centos7-gcc9-dbg/include/Functors/Core.h:171:18)' to 'std::function<std::any ()> &&' for 1st
            argument
            function(function&& __x) noexcept : _Function_base()
            ^
      /cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/9.2.0-afc57/x86_64-centos7/bin/../lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/bits/std_function.h:449:2: note: candidate template ignored: substitution failure [with _Functor = (lambda at /cvmfs/lhcbdev.cern.ch/nightlies/lhcb-lcg-dev4/1169/Rec_HEAD/InstallArea/x86_64-centos7-gcc9-dbg/include/Functors/Core.h:171:18), $1 = void]: no type named 'type' in
            'std::result_of<(lambda at /cvmfs/lhcbdev.cern.ch/nightlies/lhcb-lcg-dev4/1169/Rec_HEAD/InstallArea/x86_64-centos7-gcc9-dbg/include/Functors/Core.h:171:18) &()>'
              function(_Functor);
              ^
      In file included from ROOT_prompt_1:1:
      In file included from /cvmfs/lhcbdev.cern.ch/nightlies/lhcb-lcg-dev4/1169/Rec_HEAD/InstallArea/x86_64-centos7-gcc9-dbg/include/Functors/Function.h:12:
      /cvmfs/lhcbdev.cern.ch/nightlies/lhcb-lcg-dev4/1169/Rec_HEAD/InstallArea/x86_64-centos7-gcc9-dbg/include/Functors/Core.h:179:36: error: no matching function for call to 'visit'
                return typeid( decltype( std::visit( std::declval<prepared_t>(), std::declval<InputType>()... ) ) );
                                         ^~~~~~~~~~
      /cvmfs/lhcbdev.cern.ch/nightlies/lhcb-lcg-dev4/1169/Rec_HEAD/InstallArea/x86_64-centos7-gcc9-dbg/include/Functors/Core.h:155:7: note: in instantiation of member function 'Functors::Functor<std::any ()>::FunctorImpl<Functors::AcceptAll>::rtype' requested here
            FunctorImpl( F f ) : m_f( std::move( f ) ) {}
            ^
      /cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/9.2.0-afc57/x86_64-centos7/bin/../lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/bits/unique_ptr.h:849:34: note: in instantiation of member function 'Functors::Functor<std::any ()>::FunctorImpl<Functors::AcceptAll>::FunctorImpl' requested here
          { return unique_ptr<_Tp>(new _Tp(std::forward<_Args>(__args)...)); }
                                       ^
      /cvmfs/lhcbdev.cern.ch/nightlies/lhcb-lcg-dev4/1169/Rec_HEAD/InstallArea/x86_64-centos7-gcc9-dbg/include/Functors/Core.h:210:41: note: in instantiation of function template specialization 'std::make_unique<Functors::Functor<std::any ()>::FunctorImpl<Functors::AcceptAll>, Functors::AcceptAll>' requested here
          Functor( F func ) : m_functor( std::make_unique<FunctorImpl<F>>( std::move( func ) ) ) {}
                                              ^
      /cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/9.2.0-afc57/x86_64-centos7/bin/../lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/bits/unique_ptr.h:849:34: note: in instantiation of function template specialization 'Functors::Functor<std::any ()>::Functor<Functors::AcceptAll>' requested here
          { return unique_ptr<_Tp>(new _Tp(std::forward<_Args>(__args)...)); }
                                       ^
      ROOT_prompt_2:1:15: note: in instantiation of function template specialization 'std::make_unique<Functors::Functor<std::any ()>, Functors::AcceptAll>' requested here
      auto f = std::make_unique<Functors::Functor<std::any ()>>( ::Functors::AcceptAll{} );
                    ^
      /cvmfs/sft.cern.ch/lcg/releases/gcc/9.2.0-afc57/x86_64-centos7/bin/../lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/variant:1649:5: note: candidate template ignored: substitution failure [with _Visitor = std::reference_wrapper<const Functors::AcceptAll>, _Variants = <>]
          visit(_Visitor&& __visitor, _Variants&&... __variants)
          ^
      

      BTW, this code works with ROOT 6.18/04.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              axel Axel Naumann
              Reporter:
              clemenci Marco Clemencic
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Dates

                Created:
                Updated: