diff --git a/pvDataApp/pv/pvData.h b/pvDataApp/pv/pvData.h index 30165ff..c7e9b3f 100644 --- a/pvDataApp/pv/pvData.h +++ b/pvDataApp/pv/pvData.h @@ -427,10 +427,10 @@ public: uint32 val = pv->getAs(); @endcode */ - template - inline typename ScalarTypeTraits::type getAs() const { - typename ScalarTypeTraits::type result; - this->getAs((void*)&result, ID); + template + inline T getAs() const { + T result; + this->getAs((void*)&result, (ScalarType)ScalarTypeID::value); return result; } protected: @@ -447,9 +447,9 @@ public: pv->putFrom((int32)42); @endcode */ - template - inline void putFrom(typename ScalarTypeTraits::type val) { - this->putFrom((const void*)&val, ID); + template + inline void putFrom(T val) { + this->putFrom((const void*)&val, (ScalarType)ScalarTypeID::value); } protected: virtual void putFrom(const void *, ScalarType) = 0; @@ -508,17 +508,15 @@ public: put(value); } - template - inline typename ScalarTypeTraits::type getAs() const { - typedef typename ScalarTypeTraits::type to_t; - to_t result(castUnsafe(get())); + template + inline T1 getAs() const { + T1 result(castUnsafe(get())); return result; } - template - inline void putFrom(typename ScalarTypeTraits::type val) { - typedef typename ScalarTypeTraits::type from_t; - put(castUnsafe(val)); + template + inline void putFrom(T1 val) { + put(castUnsafe(val)); } protected: @@ -705,14 +703,13 @@ public: * the element type. If the types do match then * no copy is made. */ - template + template void - getAs(shared_vector::type>& out) const + getAs(shared_vector& out) const { - typedef typename ScalarTypeTraits::type dest_type; shared_vector temp; _getAsVoid(temp); - out = shared_vector_convert(temp); + out = shared_vector_convert(temp); } /** @@ -726,8 +723,8 @@ public: * * Calls postPut() */ - template - inline void putFrom(const shared_vector::type>& inp) + template + inline void putFrom(const shared_vector& inp) { shared_vector temp(static_shared_vector_cast(inp)); _putFromVoid(temp);