diff --git a/src/signal/signal-cast-helper.cpp b/src/signal/signal-cast-helper.cpp index 73c0e5735fd42f14908a8d6758716965b6f0cdbc..360f4423962c8bce020d43ead047e2789d5d43b9 100644 --- a/src/signal/signal-cast-helper.cpp +++ b/src/signal/signal-cast-helper.cpp @@ -52,6 +52,15 @@ inline boost::any DefaultCastRegisterer<double>::cast(std::istringstream &iss) { } } +// for std::string, do not check failure. If input stream contains an +// empty string, iss.fail() returns true and an exception is thrown +template <> +inline boost::any +DefaultCastRegisterer<std::string>::cast(std::istringstream &iss) { + std::string inst(iss.str()); + return inst; +} + // for std::string, do not add std::endl at the end of the stream. template <> inline void DefaultCastRegisterer<std::string>::disp(const boost::any &object,