Making C++ classes final
[iot2.git] / iotjava / iotruntime / cpp / setrelation / IoTRelation.hpp
index 372f6951327e17dd08f4bc95cd34418ca3630686..a3f6c2191925d5d5e4cf01c7dd994cff6901d61d 100644 (file)
@@ -13,7 +13,7 @@ using namespace std;
  * @since       2016-09-06
  */
 template <class K,class V>
-class IoTRelation {
+class IoTRelation final {
        private:
                const unordered_multimap<K,V>* rel;
        public:
@@ -69,7 +69,7 @@ IoTRelation<K,V>::~IoTRelation() {
 template <class K,class V>
 typename unordered_multimap<K,V>::const_iterator IoTRelation<K,V>::find(const K& k) {
 
-       return rel->find(k);
+       return (new unordered_multimap<K,V>(*rel))->find(k);
 }
 
 
@@ -79,7 +79,7 @@ typename unordered_multimap<K,V>::const_iterator IoTRelation<K,V>::find(const K&
 template <class K,class V>
 typename unordered_multimap<K,V>::const_iterator IoTRelation<K,V>::begin() {
 
-       return rel->begin();
+       return (new unordered_multimap<K,V>(*rel))->begin();
 }
 
 
@@ -89,7 +89,7 @@ typename unordered_multimap<K,V>::const_iterator IoTRelation<K,V>::begin() {
 template <class K,class V>
 typename unordered_multimap<K,V>::const_iterator IoTRelation<K,V>::end() {
 
-       return rel->end();
+       return (new unordered_multimap<K,V>(*rel))->end();
 }
 
 
@@ -101,7 +101,7 @@ std::pair<typename unordered_multimap<K,V>::const_iterator,
        typename unordered_multimap<K,V>::const_iterator> 
        IoTRelation<K,V>::equal_range(const K& k) {
 
-       return rel->equal_range(k);
+       return (new unordered_multimap<K,V>(*rel))->equal_range(k);
 }