From 3da2bbcd72e5c5b98dc5462b2aa77913833700f2 Mon Sep 17 00:00:00 2001
From: Uli Sack <usack@math.fu-berlin.de>
Date: Mon, 27 Oct 2014 22:14:47 +0100
Subject: [PATCH] introduce Construction via initializer list; copied more or
 less from FieldVector, see also FS#1166

---
 dune/common/diagonalmatrix.hh | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/dune/common/diagonalmatrix.hh b/dune/common/diagonalmatrix.hh
index 51b750ecd..c8b66b24f 100644
--- a/dune/common/diagonalmatrix.hh
+++ b/dune/common/diagonalmatrix.hh
@@ -7,10 +7,12 @@
    \brief  This file implements a quadratic diagonal matrix of fixed size.
  */
 
+#include <algorithm>
 #include <cassert>
 #include <cmath>
 #include <complex>
 #include <cstddef>
+#include <initializer_list>
 #include <iostream>
 #include <memory>
 
@@ -106,6 +108,13 @@ namespace Dune {
       : diag_(diag)
     {}
 
+    DiagonalMatrix (std::initializer_list<K> const &l)
+    {
+      assert(l.size() == rows);// Actually, this is not needed any more!
+      std::copy_n(l.begin(), std::min(static_cast<std::size_t>(rows),
+                                      l.size()),
+                 diag_.begin());
+    }
 
     /** \brief Assignment from a scalar */
     DiagonalMatrix& operator= (const K& k)
-- 
GitLab