From 2a9f97555f0f9f770e64b8de1f2143444bdbd4ef Mon Sep 17 00:00:00 2001 From: Sascha Volkenandt Date: Fri, 5 Jan 2007 20:32:34 +0000 Subject: - added lexical_cast tool --- tools.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'tools.h') diff --git a/tools.h b/tools.h index 3b195dd..0c98fed 100644 --- a/tools.h +++ b/tools.h @@ -2,6 +2,8 @@ #define VDR_LIVE_TOOLS_H #include +#include +#include #include #include #include @@ -12,6 +14,23 @@ std::string FormatDateTime( char const* format, time_t time ); std::string StringReplace( std::string const& text, std::string const& substring, std::string const& replacement ); std::vector< std::string > StringSplit( std::string const& text, char delimiter ); +struct bad_lexical_cast: std::runtime_error +{ + bad_lexical_cast(): std::runtime_error( "bad lexical cast" ) {} +}; + +template< typename To, typename From > +To lexical_cast( From const& from ) +{ + std::stringstream parser; + parser << from; + To result; + parser >> result; + if ( !parser ) + throw bad_lexical_cast(); + return result; +} + class ReadLock { public: -- cgit v1.2.3