#ifndef SCX_CONV_HPP
commitc2acf260cc8830c8aed7d8f6d1264a6e008f0575
authorYanhui Shen <shen.elf@gmail.com>
Wed, 8 Feb 2012 12:51:07 +0000 (8 20:51 +0800)
committerYanhui Shen <shen.elf@gmail.com>
Wed, 8 Feb 2012 12:58:15 +0000 (8 20:58 +0800)
tree7df92f6c96c3a0d519fafa6c7211877f1ec229cc
parent42299814a52ab09b73fa894ba9ba6cb37702e008
#ifndef SCX_CONV_HPP
#define SCX_CONV_HPP

#include <sstream>
#include <string>
#include <cctype>
#include <algorithm>
using namespace std;

namespace scx {

template<typename num_t>
static inline num_t StrToNum(const string& str)
{
    stringstream stream;
    stream << str;
    num_t num;
    stream >> dec >> num;
    return num;
}

template<typename num_t>
static inline string NumToStr(const num_t& num, streamsize precision = 0)
{
    stringstream stream;
    stream.setf(ios::fixed, ios::floatfield);
    stream.precision(precision);
    stream << dec << num;
    return stream.str();
}

template<typename num_t>
static inline string NumHToStr(const num_t& num, streamsize precision = 0)
{
    stringstream stream;
    stream.setf(ios::fixed, ios::floatfield);
    stream.precision(precision);
    stream << hex << num;
    return stream.str();
}

template<typename num_t>
static inline string NumOToStr(const num_t& num, streamsize precision = 0)
{
    stringstream stream;
    stream.setf(ios::fixed, ios::floatfield);
    stream.precision(precision);
    stream << oct << num;
    return stream.str();
}

static inline string ToLower(const string& str)
{
    string lower;
    lower.resize(str.size());
    transform(str.begin(), str.end(), lower.begin(), (int (*)(int))tolower);
    return lower;
}

static inline string ToUpper(const string& str)
{
    string upper;
    upper.resize(str.size());
    transform(str.begin(), str.end(), upper.begin(), (int (*)(int))toupper);
    return upper;
}

static inline bool IsLower(const string& str)
{
    return true;
}

static inline bool IsUpper(const string& str)
{
    return true;
}

};

#endif
CMakeLists.txt
include/Conv.hpp