lmi-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lmi-commits] [5297] Add a virtual RTTI function


From: Greg Chicares
Subject: [lmi-commits] [5297] Add a virtual RTTI function
Date: Sun, 09 Oct 2011 13:17:33 +0000

Revision: 5297
          http://svn.sv.gnu.org/viewvc/?view=rev&root=lmi&revision=5297
Author:   chicares
Date:     2011-10-09 13:17:32 +0000 (Sun, 09 Oct 2011)
Log Message:
-----------
Add a virtual RTTI function

Modified Paths:
--------------
    lmi/trunk/tn_range.hpp
    lmi/trunk/tn_range.tpp
    lmi/trunk/tn_range_test.cpp

Modified: lmi/trunk/tn_range.hpp
===================================================================
--- lmi/trunk/tn_range.hpp      2011-10-08 11:29:31 UTC (rev 5296)
+++ lmi/trunk/tn_range.hpp      2011-10-09 13:17:32 UTC (rev 5297)
@@ -38,6 +38,7 @@
 #endif // Defined __BORLANDC__ .
 
 #include <string>
+#include <typeinfo>
 
 /// Design notes for class template trammel_base.
 ///
@@ -150,6 +151,7 @@
     virtual std::string str() const = 0;
     virtual double universal_minimum() const = 0;
     virtual double universal_maximum() const = 0;
+    virtual std::type_info const& value_type() const = 0;
 };
 
 /// Design notes for class template tn_range.
@@ -293,6 +295,7 @@
     virtual std::string str() const;
     virtual double universal_minimum() const;
     virtual double universal_maximum() const;
+    virtual std::type_info const& value_type() const;
 
     Trammel trammel_;
 

Modified: lmi/trunk/tn_range.tpp
===================================================================
--- lmi/trunk/tn_range.tpp      2011-10-08 11:29:31 UTC (rev 5296)
+++ lmi/trunk/tn_range.tpp      2011-10-09 13:17:32 UTC (rev 5297)
@@ -745,3 +745,9 @@
     return value_cast<double>(maximum_);
 }
 
+template<typename Number, typename Trammel>
+std::type_info const& tn_range<Number,Trammel>::value_type() const
+{
+    return typeid(Number);
+}
+

Modified: lmi/trunk/tn_range_test.cpp
===================================================================
--- lmi/trunk/tn_range_test.cpp 2011-10-08 11:29:31 UTC (rev 5296)
+++ lmi/trunk/tn_range_test.cpp 2011-10-09 13:17:32 UTC (rev 5297)
@@ -398,6 +398,9 @@
     // Explicit conversion to number.
     BOOST_TEST_EQUAL(range1.value(), 3.14159);
 
+    // *** Type identification.
+    BOOST_TEST(typeid(double) == range1.value_type());
+
     // *** Limits.
 
     // Floating-point limits having an exact binary representation.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]