added a pure virtual destructor to abstract Register class
Change-Id: I885b36372877b64ce02fcc679f1fd477d06c54ba
Signed-off-by: Zane Shelley <zshelle@us.ibm.com>
diff --git a/src/register/hei_register.hpp b/src/register/hei_register.hpp
index c352d92..3e2fb8d 100755
--- a/src/register/hei_register.hpp
+++ b/src/register/hei_register.hpp
@@ -1,6 +1,5 @@
#pragma once
-#include <stdio.h>
#include <hei_includes.hpp>
#include <util/hei_bit_string.hpp>
@@ -8,7 +7,7 @@
{
/**
-@brief Description: The Register class.
+@brief An abstract class for register objects.
Purpose: Register is an abstract base class for real and virtual registers.
A few examples of these registers are; HardwareRegister, ConstantRegister,
@@ -30,22 +29,8 @@
{
public:
- /**
- @brief Default constructor
- */
- Register() = default;
-
- /**
- @brief Delete copy, assignment, and move operators. Deleting
- copy causes the compiler to delete move.
- */
- Register(const Register&) = delete;
- Register& operator=(const Register&) = delete;
-
- /**
- @brief Default destructor
- */
- virtual ~Register() = default;
+ /** @brief Pure virtual destructor. */
+ virtual ~Register() = 0;
/**
@brief Provides access to the BitString that manages
@@ -56,4 +41,7 @@
};
+// Pure virtual destructor must be defined.
+inline Register::~Register() {}
+
}//end namespace libhei