aboutsummaryrefslogtreecommitdiff
path: root/doc/snippets/Slicing_custom_padding_cxx11.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'doc/snippets/Slicing_custom_padding_cxx11.cpp')
-rw-r--r--doc/snippets/Slicing_custom_padding_cxx11.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/doc/snippets/Slicing_custom_padding_cxx11.cpp b/doc/snippets/Slicing_custom_padding_cxx11.cpp
new file mode 100644
index 000000000..24db98b7d
--- /dev/null
+++ b/doc/snippets/Slicing_custom_padding_cxx11.cpp
@@ -0,0 +1,12 @@
+struct pad {
+ Index size() const { return out_size; }
+ Index operator[] (Index i) const { return std::max<Index>(0,i-(out_size-in_size)); }
+ Index in_size, out_size;
+};
+
+Matrix3i A;
+A.reshaped() = VectorXi::LinSpaced(9,1,9);
+cout << "Initial matrix A:\n" << A << "\n\n";
+MatrixXi B(5,5);
+B = A(pad{3,5}, pad{3,5});
+cout << "A(pad{3,N}, pad{3,N}):\n" << B << "\n\n";