给定一个从 vector 中获取的变量,有没有办法识别类型。
请注意,我已经知道成员的类型并且可以在对模板的调用中指定它。这是一个允许特定类型变量的 push_back() 的特定 vector 。
例如,我们有一个允许 vector 运算的类。
auto data = member().back(); // gets the last entry in the member vector
使用模板,我想创建一个类型的新条目
dataType newdata;
member().push_back(newdata)
有没有办法根据 back() 操作的结果来识别数据类型?如果有,我可以创建一个模板,并通过传入成员指示符来检索类型。
如果没有,我必须专门传入类型才能定义
::base::dataArea newdata;
最佳答案
你可以只使用typename std::remove_reference<decltype( member().back() )>::type
如果你真的想变聪明。但您应该使用 typename V::value_type
, 其中V
是通过 member
访问的 vector 类型.参见例如docs at cppreference :查阅相关文档通常是个好主意。
关于C++如何识别变量的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28839777/