52 std::ostream& (*f_)(std::ostream&, T);
55 manipulator(std::ostream& (*f)(std::ostream&, T), T i) : i_(i), f_(f)
60 return m.f_(os, m.i_);
64 inline std::ostream&
tabsN(std::ostream& os,
int n)
71 inline std::ostream&
blanksN(std::ostream& os,
int n)
91 inline T
clamp (T num, T lower, T upper)
93 return std::max<T>(std::min<T>(upper,num),lower);
102 return (t > 0) ? T(1) : T(-1);
106 #define M_PI 3.14159265358979323846
112 return static_cast<T
>((d*
M_PI)/180.0);
118 return static_cast<T
>((r/
M_PI)*180.0);
122 inline T
fmod(T numerator, T denominator)
124 T modulo =
std::fmod(numerator, denominator);
125 return (modulo >= T(0)) ? modulo : modulo + denominator;
139 std::string toString(
int ms)
const;
148 template<
typename Flag=
bool>
175 template<
typename Status,
class Object>
180 { old_value = obj->testStatus(status); obj->setStatus(status, value); }
182 { obj->setStatus(status, old_value); }
194 StateLocker(
bool& flag,
bool value =
true) : lock(flag)
195 { old_value = lock; lock = value; }
197 { lock = old_value; }
209 BitsetLocker(T& flags, std::size_t flag,
bool value =
true)
210 : flags(flags), flag(flag)
211 { oldValue = flags.test(flag); flags.set(flag,value); }
213 { flags.set(flag,oldValue); }
236 struct LX_BASE_EXPORT
Tools
238 static std::string getUniqueName(
const std::string&,
const std::vector<std::string>&,
int d=0);
239 static std::string addNumber(
const std::string&,
unsigned int,
int d=0);
240 static std::string getIdentifier(
const std::string&);
241 static std::wstring widen(
const std::string& str);
242 static std::string narrow(
const std::wstring& str);
243 static QString escapeEncodeString(
const QString& s);
244 static std::string escapeEncodeString(
const std::string& s);
245 static QString escapeEncodeFilename(
const QString& s);
246 static std::string escapeEncodeFilename(
const std::string& s);
253 static inline std::string toStdString(
const QString& s) { QByteArray tmp = s.toUtf8();
return std::string(tmp.constData(), tmp.size()); }
260 static inline QString fromStdString(
const std::string & s) {
return QString::fromUtf8(s.c_str(), (
int)s.size()); }