diff src/ov-base-scalar.cc @ 8626:1dce30ab0e72

don't convert NaN to logical in bool expressions
author John W. Eaton <jwe@octave.org>
date Thu, 29 Jan 2009 12:50:25 -0500
parents f00578b495e9
children eb63fbe60fab
line wrap: on
line diff
--- a/src/ov-base-scalar.cc
+++ b/src/ov-base-scalar.cc
@@ -101,6 +101,20 @@
 }
 
 template <class ST>
+bool
+octave_base_scalar<ST>::is_true (void) const
+{
+  bool retval = false;
+
+  if (xisnan (scalar))
+    error ("invalid conversion from NaN to logical");
+  else
+    retval = (scalar != ST ());
+
+  return retval;
+}
+
+template <class ST>
 void
 octave_base_scalar<ST>::print (std::ostream& os, bool pr_as_read_syntax) const
 {