From fb0865ba8c7f04ee1f8fea3fe3d04870bda3ea08 Mon Sep 17 00:00:00 2001
From: ribbon-otter <39717159+ribbon-otter@users.noreply.github.com>
Date: Mon, 11 Aug 2025 05:25:08 -0700
Subject: [PATCH] fix -Wcast-user-defined (#3103)

Co-authored-by: ribbon-otter <ribbon-otter@github.invalid>
---
 dlib/dnn/layers.h | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/dlib/dnn/layers.h b/dlib/dnn/layers.h
index 2b0136ef91..0ff4d2c301 100644
--- a/dlib/dnn/layers.h
+++ b/dlib/dnn/layers.h
@@ -2440,11 +2440,13 @@ namespace dlib
                     tt::assign_bias_gradient(pb, gi);
                 }
             }
-
-            const auto& prev_gradient = sub.get_gradient_input();
-            auto sgi = alias_tensor(prev_gradient.num_samples() * prev_gradient.k() * prev_gradient.nr(), num_inputs)(prev_gradient, 0);
+            
+            //prev_gradient is not const, so that sgi isn't const
+            //since sgi is used as a destination for tt::gemm
+            auto& prev_gradient = sub.get_gradient_input();
+            alias_tensor_instance sgi = alias_tensor(prev_gradient.num_samples() * prev_gradient.k() * prev_gradient.nr(), num_inputs)(prev_gradient, 0);
             auto w = weights(params, 0);
-            tt::gemm(1, (tensor&)sgi, 1, gi, false, w, true);
+            tt::gemm(1, sgi, 1, gi, false, w, true);
         }
 
         alias_tensor_instance get_weights() { return weights(params, 0); }
