diff --git a/core/base/inc/ROOT/TExecutor.hxx b/core/base/inc/ROOT/TExecutor.hxx index 5c7ab67a3cf0be6214dc10262bf6cd05c0f16af0..5f6cf53012113e8e6ac96efeb8eeec0368707db1 100644 --- a/core/base/inc/ROOT/TExecutor.hxx +++ b/core/base/inc/ROOT/TExecutor.hxx @@ -73,8 +73,10 @@ public: auto Map(F func, unsigned nTimes) -> std::vector<typename std::result_of<F()>::type>; template<class F, class INTEGER, class Cond = noReferenceCond<F, INTEGER>> auto Map(F func, ROOT::TSeq<INTEGER> args) -> std::vector<typename std::result_of<F(INTEGER)>::type>; + /// \cond template<class F, class T, class Cond = noReferenceCond<F, T>> auto Map(F func, std::initializer_list<T> args) -> std::vector<typename std::result_of<F(T)>::type>; + /// \endcond template<class F, class T, class Cond = noReferenceCond<F, T>> auto Map(F func, std::vector<T> &args) -> std::vector<typename std::result_of<F(T)>::type>; @@ -86,8 +88,10 @@ public: auto MapReduce(F func, unsigned nTimes, R redfunc) -> typename std::result_of<F()>::type; template<class F, class INTEGER, class R, class Cond = noReferenceCond<F, INTEGER>> auto MapReduce(F func, ROOT::TSeq<INTEGER> args, R redfunc) -> typename std::result_of<F(INTEGER)>::type; + /// \cond template<class F, class T, class R, class Cond = noReferenceCond<F, T>> auto MapReduce(F func, std::initializer_list<T> args, R redfunc) -> typename std::result_of<F(T)>::type; + /// \endcond template<class F, class T, class R, class Cond = noReferenceCond<F, T>> auto MapReduce(F func, std::vector<T> &args, R redfunc) -> typename std::result_of<F(T)>::type; template<class F, class T, class Cond = noReferenceCond<F, T>> diff --git a/core/thread/inc/ROOT/TThreadExecutor.hxx b/core/thread/inc/ROOT/TThreadExecutor.hxx index a9270f504591f1b6e2b4ed5c4ba913b74b7dd0a2..c5218a4a590bfda518477f4b0a66345313f901e6 100644 --- a/core/thread/inc/ROOT/TThreadExecutor.hxx +++ b/core/thread/inc/ROOT/TThreadExecutor.hxx @@ -56,8 +56,10 @@ namespace ROOT { auto MapReduce(F func, unsigned nTimes, R redfunc, unsigned nChunks) -> typename std::result_of<F()>::type; template<class F, class INTEGER, class R, class Cond = noReferenceCond<F, INTEGER>> auto MapReduce(F func, ROOT::TSeq<INTEGER> args, R redfunc, unsigned nChunks) -> typename std::result_of<F(INTEGER)>::type; + /// \cond template<class F, class T, class R, class Cond = noReferenceCond<F, T>> auto MapReduce(F func, std::initializer_list<T> args, R redfunc, unsigned nChunks) -> typename std::result_of<F(T)>::type; + /// \endcond template<class F, class T, class R, class Cond = noReferenceCond<F, T>> auto MapReduce(F func, std::vector<T> &args, R redfunc, unsigned nChunks) -> typename std::result_of<F(T)>::type; using TExecutor<TThreadExecutor>::MapReduce; @@ -269,12 +271,12 @@ namespace ROOT { auto TThreadExecutor::MapReduce(F func, ROOT::TSeq<INTEGER> args, R redfunc, unsigned nChunks) -> typename std::result_of<F(INTEGER)>::type { return Reduce(Map(func, args, redfunc, nChunks), redfunc); } - + /// \cond template<class F, class T, class R, class Cond> auto TThreadExecutor::MapReduce(F func, std::initializer_list<T> args, R redfunc, unsigned nChunks) -> typename std::result_of<F(T)>::type { return Reduce(Map(func, args, redfunc, nChunks), redfunc); } - + /// \endcond template<class F, class T, class R, class Cond> auto TThreadExecutor::MapReduce(F func, std::vector<T> &args, R redfunc, unsigned nChunks) -> typename std::result_of<F(T)>::type { return Reduce(Map(func, args, redfunc, nChunks), redfunc);