C++如何识别变量的类型

sab*_*lel 4 c++ types

给定从向量中获取的变量,是否有一种方法来识别类型.

请注意,我已经知道成员的类型,并可以在模板调用中指定它.这是一个特定的向量,允许特定类型的变量的push_back().

例如,我们有一个允许向量操作的类.

auto data = member().back(); // gets the last entry in the member vector
Run Code Online (Sandbox Code Playgroud)

使用模板,我想创建一个类型的新条目

dataType newdata;
member().push_back(newdata)
Run Code Online (Sandbox Code Playgroud)

在给出back()操作的结果的情况下,有没有办法识别dataType是什么?如果有,我可以创建一个模板,并通过传入成员指标来检索类型.

如果没有,我将不得不专门传递类型以便定义

::base::dataArea newdata;
Run Code Online (Sandbox Code Playgroud)

Che*_*Alf 6

typename std::remove_reference<decltype( member().back() )>::type如果你真的想要聪明,你可以使用.但你应该使用typename V::value_type,V通过访问的向量的类型member.请参阅例如cppreference上文档:查阅相关文档通常是个好主意.