//////////////////////////////////////////////////////////////////////////////////////
// akashi - a server for Attorney Online 2 //
// Copyright (C) 2020 scatterflower //
// //
// This program is free software: you can redistribute it and/or modify //
// it under the terms of the GNU Affero General Public License as //
// published by the Free Software Foundation, either version 3 of the //
// License, or (at your option) any later version. //
// //
// This program is distributed in the hope that it will be useful, //
// but WITHOUT ANY WARRANTY; without even the implied warranty of //
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
// GNU Affero General Public License for more details. //
// //
// You should have received a copy of the GNU Affero General Public License //
// along with this program. If not, see . //
//////////////////////////////////////////////////////////////////////////////////////
#ifndef AKASHI_UTILS_H
#define AKASHI_UTILS_H
#include
#include
class AkashiUtils
{
private:
AkashiUtils(){};
public:
template
static inline bool checkArgType(QString arg)
{
QVariant qvar = arg;
if (!qvar.canConvert())
return false;
if (std::is_same()) {
bool ok;
qvar.toInt(&ok);
return ok;
}
else if (std::is_same()) {
bool ok;
float f = qvar.toFloat(&ok);
return ok && !isnan((float)f);
}
else if (std::is_same()) {
bool ok;
double d = qvar.toDouble(&ok);
return ok && !isnan((double)d);
}
return true;
};
};
#endif // AKASHI_UTILS_H