【发布时间】:2014-07-20 20:45:33
【问题描述】:
所以我有一个名为OptionsMap 的std::map< std::string, boost::any >,我想创建一个可以采用任何类型(因此是模板)的函数并将其存储在地图中。
下一个代码会起作用吗?
template <typename T>
void Set(std::string optionName, T&& optionValue)
{
OptionsMap[optionName] = optionValue;
}
【问题讨论】:
-
你有理由相信它不起作用吗?
-
如果您要进行完美转接,您错过了
std::forward的电话。 -
@KerrekSB 我还在学习右值等,所以我只是想确保
-
@chris 怎么样?请赐教
-
@user3027108,
optionValue是一个左值。见this example。将其与this one 进行比较。
标签: c++ templates rvalue-reference pass-by-rvalue-reference