1 struct pad { sizepad2 Index size() const { return out_size; } operator []pad3 Index operator[] (Index i) const { return std::max<Index>(0,i-(out_size-in_size)); } 4 Index in_size, out_size; 5 }; 6 7 Matrix3i A; 8 A.reshaped() = VectorXi::LinSpaced(9,1,9); 9 cout << "Initial matrix A:\n" << A << "\n\n"; 10 MatrixXi B(5,5); 11 B = A(pad{3,5}, pad{3,5}); 12 cout << "A(pad{3,N}, pad{3,N}):\n" << B << "\n\n"; 13