From e791f44c41525bc742c9027bbeb08a530cd5a424 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Sun, 5 Apr 2020 23:03:32 +0200 Subject: [PATCH] copy ctor and assgnment op forbidden for serial linked lists --- returnvalues/HasReturnvaluesIF.h | 2 +- serialize/SerialLinkedListAdapter.h | 10 ++++++++++ serialize/SerializeIF.h | 3 +++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/returnvalues/HasReturnvaluesIF.h b/returnvalues/HasReturnvaluesIF.h index b8b72a9f..d84fc757 100644 --- a/returnvalues/HasReturnvaluesIF.h +++ b/returnvalues/HasReturnvaluesIF.h @@ -1,9 +1,9 @@ #ifndef HASRETURNVALUESIF_H_ #define HASRETURNVALUESIF_H_ -#include #include #include +#include #define MAKE_RETURN_CODE( number ) ((INTERFACE_ID << 8) + (number)) typedef uint16_t ReturnValue_t; diff --git a/serialize/SerialLinkedListAdapter.h b/serialize/SerialLinkedListAdapter.h index 80dbcaf1..b5c06a16 100644 --- a/serialize/SerialLinkedListAdapter.h +++ b/serialize/SerialLinkedListAdapter.h @@ -41,6 +41,16 @@ template class SerialLinkedListAdapter: public SinglyLinkedList, public SerializeIF { public: + /** + * Copying is forbidden by deleting the copy constructor and the copy + * assignment operator because of the pointers to the linked list members. + * Unless the child class implements an own copy constructor or + * copy assignment operator, these operation will throw a compiler error. + * @param + */ + SerialLinkedListAdapter(const SerialLinkedListAdapter &) = delete; + SerialLinkedListAdapter& operator=(const SerialLinkedListAdapter&) = delete; + SerialLinkedListAdapter(typename LinkedElement::Iterator start, bool printCount = false) : SinglyLinkedList(start), printCount(printCount) { diff --git a/serialize/SerializeIF.h b/serialize/SerializeIF.h index d547daac..da401b2f 100644 --- a/serialize/SerializeIF.h +++ b/serialize/SerializeIF.h @@ -5,7 +5,10 @@ #include #include +#ifndef ssize_t typedef std::make_signed::type ssize_t; +#endif + /** * @defgroup serialize Serialization * Contains serialisation services.