From 9ecdb8053464acd804aff3406f8910c3095e172c Mon Sep 17 00:00:00 2001 From: Michael Davidsaver Date: Sun, 8 Apr 2018 15:24:15 -0700 Subject: [PATCH] anyscalar.h: remove unnecesary vcast what was I thinking... --- src/misc/pv/anyscalar.h | 4 ++-- testApp/misc/testanyscalar.cpp | 10 +++++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/misc/pv/anyscalar.h b/src/misc/pv/anyscalar.h index f46f13b..28d875e 100644 --- a/src/misc/pv/anyscalar.h +++ b/src/misc/pv/anyscalar.h @@ -301,7 +301,7 @@ public: if(_stype!=(ScalarType)ScalarTypeID::value) throw bad_cast(); - return _as(); + return reinterpret_cast(_wrap.blob); } template @@ -313,7 +313,7 @@ public: if(_stype!=(ScalarType)ScalarTypeID::value) throw bad_cast(); - return _as(); + return reinterpret_cast::type&>(_wrap.blob); } /** copy out wrapped value, with a value conversion. */ diff --git a/testApp/misc/testanyscalar.cpp b/testApp/misc/testanyscalar.cpp index 3aa1d14..b2e84ba 100644 --- a/testApp/misc/testanyscalar.cpp +++ b/testApp/misc/testanyscalar.cpp @@ -73,6 +73,14 @@ void test_basic() testEqual(I.as(), 42.0); testEqual(I.as(), "42"); + const pvd::AnyScalar I2(I); + + testEqual(I2.type(), pvd::pvInt); + testEqual(I2.ref(), 42); + testEqual(I2.as(), 42); + testEqual(I2.as(), 42.0); + testEqual(I2.as(), "42"); + testThrows(pvd::AnyScalar::bad_cast, I.ref()); { @@ -230,7 +238,7 @@ void test_move() MAIN(testanyscalar) { - testPlan(70); + testPlan(75); try { test_empty(); test_ctor();