aboutsummaryrefslogtreecommitdiffstats
path: root/core/optimizer.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'core/optimizer.hpp')
-rw-r--r--core/optimizer.hpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/core/optimizer.hpp b/core/optimizer.hpp
index 10cfce9..6380d66 100644
--- a/core/optimizer.hpp
+++ b/core/optimizer.hpp
@@ -12,6 +12,7 @@
#include "opt_exception.hpp"
#include <cstdlib>
#include <functional>
+#include <typeinfo>
#ifdef DEBUG
#include <iostream>
using namespace std;
@@ -59,6 +60,15 @@ namespace opt_utilities
delete this;
}
+ /**
+ \return the type name of self
+ */
+
+ virtual const char* do_get_type_name()const
+ {
+ return typeid(*this).name();
+ }
+
public:
/**
Interface function to perform the clone
@@ -77,6 +87,10 @@ namespace opt_utilities
do_destroy();
}
+ const char* get_type_name()const
+ {
+ return this->do_get_type_name();
+ }
/**
Makes the class object like a real function.
@@ -175,6 +189,15 @@ namespace opt_utilities
{
delete this;
}
+
+ /**
+ \return the type name of self
+ */
+
+ virtual const char* do_get_type_name()const
+ {
+ return typeid(*this).name();
+ }
public:
/**
Interface function for seting optimizer
@@ -287,6 +310,15 @@ namespace opt_utilities
}
/**
+ \return the type name of self
+ */
+
+ virtual const char* get_type_name()const
+ {
+ return this->do_get_type_name();
+ }
+
+ /**
deconstruct function
*/
virtual ~opt_method(){};