zeus/jus/ParamType.cpp

46 lines
1.1 KiB
C++

/** @file
* @author Edouard DUPIN
* @copyright 2016, Edouard DUPIN, all right reserved
* @license APACHE v2.0 (see license file)
*/
#include <jus/ParamType.h>
#include <jus/debug.h>
jus::ParamType::ParamType(const char* _name):
m_typeName(_name) {
}
const char* jus::ParamType::getName() const {
return m_typeName;
}
bool jus::ParamType::operator == (const ParamType& _obj) const {
return m_typeName == _obj.m_typeName;
}
#define generate_basic_type(_type, _name) \
namespace jus { \
template<> jus::ParamType createType<_type>() {\
return jus::ParamType(_name); \
} \
}
generate_basic_type(void, "void");
generate_basic_type(bool, "bool");
generate_basic_type(float, "float");
generate_basic_type(double, "double");
generate_basic_type(int64_t, "int64");
generate_basic_type(int32_t, "int32");
generate_basic_type(int16_t, "int16");
generate_basic_type(int8_t, "int8");
generate_basic_type(uint64_t, "uint64");
generate_basic_type(uint32_t, "uint32");
generate_basic_type(uint16_t, "uint16");
generate_basic_type(uint8_t, "uint8");
generate_basic_type(std::string, "string");