如果有一个变量来自于一个向量,有没有一种方法可以确定它的类型。
请注意,我已经知道成员的类型,并且可以在调用模板时指定它。这是一个特定的向量,允许将特定类型的变量推入(push_back())。
例如,我们有一个允许向量操作的类。
auto data = member().back(); // gets the last entry in the member vector
使用模板,我希望创建一个新的类型条目。
dataType newdata;
member().push_back(newdata)
在执行back()操作后,有没有一种方法可以确定dataType是什么?如果有,我可以创建一个模板,并通过传递成员指示器来检索类型。
如果没有,我将不得不明确传递类型以进行定义。
::base::dataArea newdata;
std::remove_reference<decltype(member.back())::type>
是正确的解决方案 :) - lcsmember
是std::vector<int>
类型,则以下内容将是有效的:std::remove_reference<decltype(member.back())>::type newInt = 5;
newInt
的类型为int
。 - lcs