add EIGEN_FUNCTORS_PLUGIN
diff --git a/Eigen/src/Core/Functors.h b/Eigen/src/Core/Functors.h index 347f1b2..c8ca3da 100644 --- a/Eigen/src/Core/Functors.h +++ b/Eigen/src/Core/Functors.h
@@ -348,6 +348,12 @@ struct ei_functor_traits<ei_scalar_identity_op<Scalar> > { enum { Cost = NumTraits<Scalar>::AddCost, PacketAccess = false, IsRepeatable = true }; }; +// allow to add new functors and specializations of ei_functor_traits from outside Eigen. +// this macro is really needed because ei_functor_traits must be specialized after it is declared but before it is used... +#ifdef EIGEN_FUNCTORS_PLUGIN +#include EIGEN_FUNCTORS_PLUGIN +#endif + // all functors allow linear access, except ei_scalar_identity_op. So we fix here a quick meta // to indicate whether a functor allows linear access, just always answering 'yes' except for // ei_scalar_identity_op.