X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=common%2FclitkCommon.txx;h=dc7f1653c45d5d9e3538043297ca89408c64b80e;hb=e1098dccba022441144bfc1c44a2b58db7dde34e;hp=d7c91405dda8f45ff76138c341784f4d05b16b4c;hpb=7fb3f08a03ea03edb40f5e73d59381c5a92935fb;p=clitk.git diff --git a/common/clitkCommon.txx b/common/clitkCommon.txx index d7c9140..dc7f165 100644 --- a/common/clitkCommon.txx +++ b/common/clitkCommon.txx @@ -3,7 +3,7 @@ Authors belong to: - University of LYON http://www.universite-lyon.fr/ - - Léon Bérard cancer center http://oncora1.lyon.fnclcc.fr + - Léon Bérard cancer center http://www.centreleonberard.fr - CREATIS CNRS laboratory http://www.creatis.insa-lyon.fr This software is distributed WITHOUT ANY WARRANTY; without even @@ -14,20 +14,14 @@ - BSD See included LICENSE.txt file - CeCILL-B http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html -======================================================================-====*/ +===========================================================================**/ #ifndef CLITKCOMMON_TXX #define CLITKCOMMON_TXX -/** - ------------------------------------------------- - * @file clitkCommon.txx - * @author David Sarrut - * @date 18 May 2006 - * - -------------------------------------------------*/ //------------------------------------------------------- // Utility functions for text file parsing (author: joel schaerer) +//-------------------------------------------------------------------- template ElementType parse_value(std::string str) { @@ -37,7 +31,10 @@ ElementType parse_value(std::string str) assert(!parser.fail()); return value; } +//-------------------------------------------------------------------- + +//-------------------------------------------------------------------- template std::vector parse_string(std::string str,char delim) { @@ -49,7 +46,10 @@ std::vector parse_string(std::string str,char delim) } return result; } +//-------------------------------------------------------------------- + +//-------------------------------------------------------------------- template std::vector > parse_file(const char* filename,char delim) { @@ -62,6 +62,8 @@ std::vector > parse_file(const char* filename,char deli } return result; } +//-------------------------------------------------------------------- + //-------------------------------------------------------------------- // Convert float, double ... to string @@ -74,6 +76,19 @@ std::string toString(const T & t) } //-------------------------------------------------------------------- + +//-------------------------------------------------------------------- +// http://www.codeguru.com/forum/showthread.php?t=231054 +template +bool fromString(T& t, const std::string& s, + std::ios_base& (*f)(std::ios_base&)) +{ + std::istringstream iss(s); + return !(iss >> f >> t).fail(); +} +//-------------------------------------------------------------------- + + //-------------------------------------------------------------------- // Convert float*, double* ... to string template