#include "task.hpp" #include #include namespace todo { Task::Task() { estimatedTime = 0; completed = false; } Task::Task(const std::string& d, int t) : description{d} { estimatedTime = t; completed = false; } #ifdef SHOW_COPY_MOVE_CALLS Task::Task(const Task& toCopy) : description{toCopy.description} { std::cout << "Task::copy-ctor for " << toCopy.description << std::endl; estimatedTime = toCopy.estimatedTime; completed = toCopy.completed; } Task::Task(Task&& toMove) : description{std::move(toMove.description)} { std::cout << "Task::move-ctor for " << description << std::endl; estimatedTime = toMove.estimatedTime; completed = toMove.completed; } Task& Task::operator=(const Task& rhs) { std::cout << "Task::copy-assign for " << rhs.description << std::endl; if (&rhs != this) { estimatedTime = rhs.estimatedTime; completed = rhs.completed; description = rhs.description; } return *this; } Task& Task::operator=(Task&& rhs) { std::cout << "Task::move-assign for " << rhs.description << std::endl; if (&rhs != this) { estimatedTime = rhs.estimatedTime; completed = rhs.completed; std::cout << "before copying description: " << rhs.description << std::endl; description = std::move(rhs.description); std::cout << "after copying description: " << rhs.description << std::endl; } return *this; } #endif void Task::complete() { completed = true; } bool Task::isCompleted() const { return completed; } void Task::print(std::ostream& os) const { os << estimatedTime << " " << description; } int Task::time() const { return estimatedTime; } }