| File lib/felix/rtl/flx_strutil.cpp |
GODI Package
apps-felix |
#line 176 "lpsrc/flx_lib.ipk"
#include <string>
#include <sstream>
#include "flx_rtl_config.hpp"
template class FLX_RTL_EXTERN std::basic_string<char>;
namespace flx { namespace rtl { namespace strutil {
using namespace std;
template<class T>
basic_string<T> mul(basic_string<T> s, int n) {
basic_string<T> r = "";
while(n--) r+=s;
return r;
}
// normalise string positions Python style
// note substr requires 0<=b<=size, 0<=n,
// however n>size is OK
template<class T>
basic_string<T> substr(basic_string<T> const &s, int b, int e)
{
int n = s.size();
if(b<0) b=b+n;
if(b<0) b=0;
if(b>=n) b=n;
if(e<0) e=e+n;
if(e<0) e=0;
if(e>=n) e=n;
int m = e-b;
if(m<0) m=0;
return s.substr(b,m);
}
template<class T>
string str(T const &t) {
std::ostringstream x;
x << t;
return x.str();
}
string atostr(char const *a) {
if(a) return a;
else return "";
}
}}}