]> git.tdb.fi Git - libs/core.git/blobdiff - source/core/maputils.cpp
Use nicer formatting for string keys in key_error
[libs/core.git] / source / core / maputils.cpp
index 4fcc8e2176769832b02f9d301810e1fd078fd9e0..cb2f389fe78491dd2cd4c8f49ba339bc4389351e 100644 (file)
@@ -1,12 +1,18 @@
 #include <msp/debug/demangle.h>
+#include <msp/strings/format.h>
+#include <msp/strings/utils.h>
 #include "maputils.h"
 
 using namespace std;
 
 namespace Msp {
 
-key_error::key_error(const type_info &t):
-       runtime_error(Debug::demangle(t.name()))
-{ }
+string key_error::make_what(const type_info &type, const string &value)
+{
+       if(&type==&typeid(string))
+               return format("\"%s\"", c_escape(value));
+       else
+               return format("%s(%s)", Debug::demangle(type.name()), value);
+}
 
 } // namespace Msp