From 0c71feb0363b337152f11e301303f85f9621c148 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Thu, 20 Jul 2017 08:55:31 +0200 Subject: Add modularized version --- libmformat/libmformat/format.cxx | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 libmformat/libmformat/format.cxx (limited to 'libmformat/libmformat/format.cxx') diff --git a/libmformat/libmformat/format.cxx b/libmformat/libmformat/format.cxx new file mode 100644 index 0000000..fe6ad15 --- /dev/null +++ b/libmformat/libmformat/format.cxx @@ -0,0 +1,31 @@ +// file: libmformat/format.cxx -*- C++ -*- + +module format; + +import std.core; // transform() +import std.io; // to{upper,lower}() + +using namespace std; + +namespace format +{ + string + message (const string& g, const string& n, volume v) + { + string r (g); + + auto tr = [&r] (char (*t) (char)) + { + transform (r.begin (), r.end (), r.begin (), t); + }; + + switch (v) + { + case volume::quiet: tr ([](char c) -> char {return tolower (c);}); break; + case volume::normal: break; + case volume::loud: tr ([](char c) -> char {return toupper (c);}); break; + } + + return r += ", " + n + '!'; + } +} -- cgit v1.1