changeset 28760:f4ed4be5d809

Use lambda expression instead of file static one-line function in cset b6bed53f059f. * jsonencode.cc: Use C++ lambda expression instead of declaring a file static one-line function.
author Rik <rik@octave.org>
date Fri, 18 Sep 2020 11:58:38 -0700
parents b6bed53f059f
children b5461b1dc0ca
files libinterp/corefcn/jsonencode.cc
diffstat 1 files changed, 6 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/libinterp/corefcn/jsonencode.cc	Fri Sep 18 19:17:12 2020 +0200
+++ b/libinterp/corefcn/jsonencode.cc	Fri Sep 18 11:58:38 2020 -0700
@@ -375,12 +375,6 @@
     }
 }
 
-static void
-warning_cleanup (const octave_value_list& args)
-{
-  set_warning_state (args);
-}
-
 //! Encodes any Octave object. This function only serves as an interface
 //! by choosing which function to call from the previous functions.
 //!
@@ -419,7 +413,9 @@
       octave_value_list ws
         = set_warning_state ("Octave:classdef-to-struct", "off");
       octave::unwind_protect frame;
-      frame.add_fcn (warning_cleanup, ws);
+      auto cleanup_ptr = +[] (octave_value_list ws_orig)
+                           { set_warning_state (ws_orig); } ;
+      frame.add_fcn (cleanup_ptr, ws);
 
       encode_struct (writer, obj.scalar_map_value ().getfield ("map"),
                      ConvertInfAndNaN);
@@ -429,7 +425,9 @@
       octave_value_list ws
         = set_warning_state ("Octave:classdef-to-struct", "off");
       octave::unwind_protect frame;
-      frame.add_fcn (warning_cleanup, ws);
+      auto cleanup_ptr = +[] (octave_value_list ws_orig)
+                           { set_warning_state (ws_orig); } ;
+      frame.add_fcn (cleanup_ptr, ws);
 
       encode_struct (writer, obj.scalar_map_value (), ConvertInfAndNaN);
     }