diff --git a/paddle/framework/eigen.h b/paddle/framework/eigen.h index 4ba4fd4d11..2599b29508 100644 --- a/paddle/framework/eigen.h +++ b/paddle/framework/eigen.h @@ -65,14 +65,15 @@ template <typename T, int MajorType = Eigen::RowMajor, typename IndexType = Eigen::DenseIndex> struct EigenVector : public EigenTensor<T, 1, MajorType, IndexType> { // Flatten is to reshape a Tensor into a one dimension EigenVector - static typename EigenTensor<T, 1>::Type Flatten(Tensor& tensor) { - return EigenTensor<T, 1>::From( - tensor, make_ddim({static_cast<int>(product(tensor.dims_))})); + using Parent = EigenTensor<T, 1, MajorType, IndexType>; + static typename Parent::Type Flatten(Tensor& tensor) { + return Parent::From(tensor, + make_ddim({static_cast<int>(product(tensor.dims_))})); } - static typename EigenTensor<T, 1>::ConstType Flatten(const Tensor& tensor) { - return EigenTensor<T, 1>::From( - tensor, make_ddim({static_cast<int>(product(tensor.dims_))})); + static typename Parent::ConstType Flatten(const Tensor& tensor) { + return Parent::From(tensor, + make_ddim({static_cast<int>(product(tensor.dims_))})); } };