From 9cc9397ec9d5c4032379c903a24b0a3c1f46395f Mon Sep 17 00:00:00 2001 From: Vitor Fernandes Date: Thu, 16 Jul 2020 00:50:24 +0100 Subject: [PATCH] Refactor and added brancheless math functions --- src/bmath/CMakeLists.txt | 7 ++++ src/misc/CMakeLists.txt | 5 +-- src/misc/smartpointer.cpp | 71 --------------------------------------- src/misc/smartpointer.h | 19 ----------- 4 files changed, 8 insertions(+), 94 deletions(-) delete mode 100644 src/misc/smartpointer.cpp delete mode 100644 src/misc/smartpointer.h diff --git a/src/bmath/CMakeLists.txt b/src/bmath/CMakeLists.txt index 7dd23fb..c2e601e 100644 --- a/src/bmath/CMakeLists.txt +++ b/src/bmath/CMakeLists.txt @@ -1,10 +1,17 @@ add_library( bmath SHARED complex.cpp + math.cpp ) add_executable( complex demos/complex.cpp complex.cpp +) + +add_executable( + math + demos/math.cpp + math.cpp ) \ No newline at end of file diff --git a/src/misc/CMakeLists.txt b/src/misc/CMakeLists.txt index 919ea12..f70a548 100644 --- a/src/misc/CMakeLists.txt +++ b/src/misc/CMakeLists.txt @@ -1,4 +1 @@ -add_executable( - spointer - smartpointer.cpp -) +add_subdirectory(memory) \ No newline at end of file diff --git a/src/misc/smartpointer.cpp b/src/misc/smartpointer.cpp deleted file mode 100644 index a31e68c..0000000 --- a/src/misc/smartpointer.cpp +++ /dev/null @@ -1,71 +0,0 @@ -#include "smartpointer.h" -#include - -#define UPtr std::unique_ptr -#define SPtr std::shared_ptr - -DummyObject::DummyObject(int num_elements) -{ - std::cout << "Constructor called " << num_elements << std::endl; - size = num_elements; - list_of_numbers = new int[size]; -} - -DummyObject::~DummyObject() -{ - std::cout << "Destructor called " << size << std::endl; - delete[] list_of_numbers; -} - -DummyObject::DummyObject(const DummyObject &other) -{ - std::cout << "Copy constructor called " << other.size << std::endl; - list_of_numbers = new int[other.size]; - for (int i = 0; i < other.size; i++) - { - list_of_numbers[i] = other.list_of_numbers[i]; - } - size = other.size; -} - -DummyObject::DummyObject(DummyObject&& moved) -{ - std::cout << "Move constructor called " << moved.size << std::endl; -} - -void DummyObject::doSomething() -{ - std::cout << "This do amazing stuff: " << size << std::endl; -} - -DummyObject createDummy(int size) -{ - DummyObject d(size); - return d; -} - -int main(void) -{ - std::cout << "Smart pointer examples" << std::endl; - - DummyObject d(15); - DummyObject copy = d; - - DummyObject *dmtPtr = new DummyObject(20); - UPtr dmySmtPtr = UPtr(new DummyObject(30)); - - dmySmtPtr->doSomething(); - dmtPtr->doSomething(); - - SPtr firstSmtPtr = SPtr(dmtPtr); - SPtr secondSmtPtr = firstSmtPtr; - - DummyObject retDummy = createDummy(32); - DummyObject secondDummy = std::move(retDummy); - - retDummy.doSomething(); - secondDummy.doSomething(); - - firstSmtPtr->doSomething(); - secondSmtPtr->doSomething(); -} \ No newline at end of file diff --git a/src/misc/smartpointer.h b/src/misc/smartpointer.h deleted file mode 100644 index 07b537f..0000000 --- a/src/misc/smartpointer.h +++ /dev/null @@ -1,19 +0,0 @@ -#pragma once - -#include - -class DummyObject { - public: - DummyObject(int); //Constructor - ~DummyObject(); //destructor - DummyObject(const DummyObject&); //copy constructor - DummyObject(DummyObject&&); //move constructor - - void doSomething(); - - - private: - int size; - int* list_of_numbers; - -}; \ No newline at end of file