Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Dec 20, 2007, 4:10:08 PM (16 years ago)
Author:
nicolasc
Message:
  • a lot of inlining of getfunctions
  • set libaudio to shared (not sure, if related: audioplayer + ingame sound == crash!)
  • minor space cleanups
File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/FICN/src/misc/String2Number.h

    r592 r659  
    99
    1010/**
    11 * String to number conversion
    12 *
    13 * This class converts a number inside a std::string
    14 * into a numeric type number (int,float,double)
    15 * Number in string can be decimal, hexadecimal or octal
    16 *
    17 * @author Nicolas Perrenoud<nicolape@ee.ethz.ch>
    18 *
    19 * @example
    20 * float f;
    21 * String2Number<float>(f, std::string(" 123.45 "));
    22 */
     11 * String to number conversion
     12 *
     13 * This class converts a number inside a std::string
     14 * into a numeric type number (int,float,double)
     15 * Number in string can be decimal, hexadecimal or octal
     16 *
     17 * @author Nicolas Perrenoud<nicolape@ee.ethz.ch>
     18 *
     19 * @example
     20 * float f;
     21 * String2Number<float>(f, std::string(" 123.45 "));
     22 */
     23
    2324template <class T>
    2425class String2Number
    2526{
    26 private:
    27         bool success_;
    28 public:
    29         /**
    30         * Constructor
    31         *
    32         * First value is the target variable, the second vector is the
    33         * string where the number is taken from, the third parameter
    34         * should be one of std::hex, std::dec or std::oct (dec is default value)
    35         */
    36         inline String2Number(T& t, const std::string& s, std::ios_base& (*f)(std::ios_base&) =  std::dec, int haltOnError=1)
    37         {
    38           std::istringstream iss(s);
    39           success_ = !(iss >> f >> t).fail();
     27  private:
     28  bool success_;
    4029
    41           if (!success_ && haltOnError==1)
    42           {
    43                 COUT(1) << "Error: Conversion from string to number in \"" << s << "\" failed." << std::endl;
    44                 exit(1);
    45           }
    46         }
     30  public:
     31  /**
     32   * Constructor
     33   *
     34   * First value is the target variable, the second vector is the
     35   * string where the number is taken from, the third parameter
     36   * should be one of std::hex, std::dec or std::oct (dec is default value)
     37   */
     38  inline String2Number(T& t, const std::string& s, std::ios_base& (*f)(std::ios_base&) =  std::dec, int haltOnError=1)
     39  {
     40    std::istringstream iss(s);
     41    success_ = !(iss >> f >> t).fail();
     42
     43    if (!success_ && haltOnError==1)
     44    {
     45      COUT(1) << "Error: Conversion from string to number in \"" << s << "\" failed." << std::endl;
     46      exit(1);
     47    }
     48  }
    4749};
    4850
Note: See TracChangeset for help on using the changeset viewer.