/** @file * @author Edouard DUPIN * @copyright 2016, Edouard DUPIN, all right reserved * @license APACHE v2.0 (see license file) */ #include #include 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");