如何为所有类型的整数值类型创建全局类型,并在C++中了解它们的类型
How to make global type for all types of integer value types and to know their types in C++
我喜欢将通过引用从任何整数(float、int、double..)中获取变量的函数作为自定义类型。此类型应该知道它是从哪个类型构造的。例如,假设我构建自定义类型的
class Variable
{
public:
Variable(int &v)
Variable(float &v)
Variable(double &v)
Variable(short &v)
void setNuwValue(int &v)
void setNuwValue(float &v)
void setNuwValue(double &v)
void setNuwValue(short &v)
var_type_enum getType();
};
现在在我的应用程序中,我有一个函数,它将此变量类型作为参数
void modifyVar(Variable& var)
{
//1.how to know the var type it can return enum of types or string what ever ..
var_type_enum type = var.getType();
var.setNuwValue(3);
}
正如你所看到的,这只是没有实现的伪代码,我不知道如何实现,我需要帮助。简而言之,我希望能够实现全局类型var,例如javascript"var"type
试试这个:
enum VT
{
VT_int,
VT_float,
VT_double,
VT_short
}
class Variable
{
int i;
float f;
double d;
short s;
VT type;
public:
Variable() : i(0), f(0), d(0), s(0) {}
Variable(int &v) { i = v; type = VT_int; }
Variable(float &v) { f = v; type = VT_float; }
Variable(double &v) { d = v; type = VT_double; }
Variable(short &v) { s = v; type = VT_short; }
void setNuwValue(int &v) { i = v; type = VT_int; }
void setNuwValue(float &v) { f = v; type = VT_float; }
void setNuwValue(double &v) { d = v; type = VT_double; }
void setNuwValue(short &v) { s = v; type = VT_short; }
VT getType() const { return type; }
};
您可能可以使用如下所示的模板。
template<typename T> class Variable
{
public:
const char* getType()
{
return typeid(T).name();
}
void setNuwValue( const T& ValueIn )
{
m_Value = ValueIn;
}
private:
T m_Value;
};
template<typename T>
void modifyVar(Variable<T>& var)
{
const char* type = var.getType();
var.setNuwValue(3);
}
下面的示例调用将在调用getType()时返回"double"。
Variable<double>Var;
modifyVar( Var );
相关文章:
- ArduinoJson 6.15.2:JsonObject没有命名类型
- 防止主数据类型C++的隐式转换
- 大量序列中核苷酸类型的快速计数
- 如何从C++中的依赖类型中获得它所依赖的类型
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 是否可以初始化不可复制类型的成员变量(或基类)
- 如何获取std::result_of函数的返回类型
- 从父命名空间重载类型
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- 我想将一个对T类型的非常量左值引用绑定到一个T类型的临时值
- Openssl 1.1.1d无效使用不完整的类型"struct dsa_st"
- 访问者访问变体并返回不同类型时出错
- 在VS2010-VS2015下编译时,如何使用decltype作为较大类型表达式的LHS
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- C++ 雷神库 - 使用资源加载器类时出现问题(不命名类型)
- 模板元程序查找相似的连续类型名称
- 是否可以从int转换为enum类类型
- 构造函数正在调用一个使用当前类类型的函数
- 我应该使用什么来代替void作为变体中的替代类型之一
- 类中的字符串不命名类型