diff --git a/Modules/Core/Functor/include/otbFunctorImageFilter.h b/Modules/Core/Functor/include/otbFunctorImageFilter.h index c3eae2f6c450140b8e3cfd32c6f4bba3531575cf..073944cf4d25016b7949c28e8070df7f8bdd4f48 100644 --- a/Modules/Core/Functor/include/otbFunctorImageFilter.h +++ b/Modules/Core/Functor/include/otbFunctorImageFilter.h @@ -211,7 +211,7 @@ template <typename C, typename R, typename... T, typename TNameMap> struct Funct /** * \brief This helper method builds a fully functional FunctorImageFilter from a functor instance * - * Functor can be any operator() (const or non-const) that matches the following: + * \tparam Functor can be any operator() (const or non-const) that matches the following: * - Accepts any number of arguments of T, * (const) itk::VariableLengthVector<T> (&),(const) * itk::Neighborhood<T> (&), (const) @@ -223,8 +223,8 @@ template <typename C, typename R, typename... T, typename TNameMap> struct Funct * SetVariadicInputs() method (see VariadicInputsImageFilter class for * details) * - * \param f the Functor to build the filter from - * \param radius The size of neighborhood to use, if there is any + * \param[in] the Functor to build the filter from + * \param[in] radius The size of neighborhood to use, if there is any * itk::Neighborhood<T> in the operator() arguments. * \return A ready to use OTB filter, which accepts n input image of * type derived from the operator() arguments, and producing an image @@ -234,13 +234,13 @@ template <typename C, typename R, typename... T, typename TNameMap> struct Funct * provided it returns a scalar type. If your lambda returns a * VariableLengthVector, see the other NewFunctorFilter implementation. */ -template <typename Functor, typename TNameMap = void> auto NewFunctorFilter(const Functor& f, itk::Size<2> radius = {{0,0}}); +template <typename Functor, typename TNameMap = void> auto NewFunctorFilter(Functor f, itk::Size<2> radius = {{0,0}}); /** \class FunctorImageFilter * \brief A generic functor filter templated by its functor * - * TFunction can be any operator() (const or non-const) that matches the following: + * \tparam TFunction can be any operator() (const or non-const) that matches the following: * - Accepts any number of arguments of T, * (const) itk::VariableLengthVector<T> (&),(const) * itk::Neighborhood<T> (&), (const) @@ -317,7 +317,7 @@ protected: private: /// Actual creation of the filter is handled by this free function - friend auto NewFunctorFilter<TFunction,TNameMap>(const TFunction& f, itk::Size<2> radius); + friend auto NewFunctorFilter<TFunction,TNameMap>(TFunction f, itk::Size<2> radius); /** Overload of ThreadedGenerateData */ void ThreadedGenerateData(const OutputImageRegionType& outputRegionForThread, itk::ThreadIdType threadId) override; @@ -341,7 +341,7 @@ private: }; // Actual implementation of NewFunctorFilter free function -template <typename Functor, typename TNameMap> auto NewFunctorFilter(const Functor& f, itk::Size<2> radius) +template <typename Functor, typename TNameMap> auto NewFunctorFilter(Functor f, itk::Size<2> radius) { using FilterType = FunctorImageFilter<Functor,TNameMap>; using PointerType = typename FilterType::Pointer; @@ -362,11 +362,10 @@ template <typename Functor, typename TNameMap> auto NewFunctorFilter(const Funct * It is used internally in NewFunctorFilter version with * numberOfOutputBands parameter. */ - template <typename F> struct NumberOfOutputBandsDecorator : F { public: - constexpr NumberOfOutputBandsDecorator(const F t, unsigned int nbComp) : F(t), m_NumberOfOutputBands(nbComp) {} + constexpr NumberOfOutputBandsDecorator(F t, unsigned int nbComp) : F(t), m_NumberOfOutputBands(nbComp) {} using F::operator(); constexpr size_t OutputSize(...) const @@ -383,8 +382,8 @@ private: * FunctorImageFilter from a functor instance which does not provide * the OutputSize() service, or a lambda, returing a VariableLengthVector * - * \param f the Functor to build the filter from - * \param numberOfOutputBands The number of output bands that + * \param[in] f the Functor to build the filter from + * \param[in] numberOfOutputBands The number of output bands that * this filter will return * \param radius The size of neighborhood to use, if there is any * itk::Neighborhood<T> in the operator() arguments. @@ -398,7 +397,7 @@ private: */ -template <typename Functor, typename TNameMap = void> auto NewFunctorFilter(const Functor& f, unsigned int numberOfOutputBands, itk::Size<2> radius) +template <typename Functor, typename TNameMap = void> auto NewFunctorFilter(Functor f, unsigned int numberOfOutputBands, itk::Size<2> radius) { using FunctorType = NumberOfOutputBandsDecorator<Functor>; FunctorType decoratedF(f,numberOfOutputBands);