我在 C++ 中有以下模板函数
template<class S, class T> const T& safe_retrieve
(vector<T> const& data, vector<S> const& keys, const S& key)
{
assert(data.size() == keys.size());
typename vector<S>::const_iterator it = binary_find(keys.begin(), keys.end(), key);
assert(it != keys.end());
size_t index = static_cast<size_t>(it - keys.begin());
return data.at(index);
}
Run Code Online (Sandbox Code Playgroud)
但是,我收到错误:
error: returning reference to temporary [-Werror=return-local-addr]
Run Code Online (Sandbox Code Playgroud)
我理解此错误的含义,但我不明白为什么我返回的引用是临时的。
c++ ×1