#pragma once ///////////////////////////////////////////////////////////////////////// // Utilities.h - Generally useful utiltity functions and classes // // // // Jim Fawcett, CSE687 - Object Oriented Design, Summer 2017 // ///////////////////////////////////////////////////////////////////////// /* * Package operations: * ------------------- * Functions: * - void putTitle(string, sentinal char) emits underlined title to std::cout * - void putLine(string) emits string to std::cout. Default is empty string * Classes and Structs * - Convert provides methods toString(t) and fromString(string) * - Cosmetic global instance will emit newlines to std::cout at program end */ #include #include #include namespace Utilities { void putTitle(const std::string title, char ch = '-'); void putLine(const std::string& line = ""); template class Convert { public: static std::string toString(const T& t) { std::ostringstream out; out << t; return out.str(); } static T fromString(const std::string& src) { std::istringstream in(src); T t; in >> t; return t; } }; struct Cosmetic { Cosmetic(const std::string& msg = "") : msg_(msg) {} ~Cosmetic() { std::cout << "\n\n "; if (msg_.length() > 0) std::cout << msg_ << "\n\n"; } std::string msg_; }; }