1
#include<iostream>
#include<vector>
struct Empty {};
template <typename V>
void add(V&& element)
{
static_assert(std::is_rvalue_reference<V>::value, "V is not a rvalue reference");
}
int main(int argc, char *argv[])
{
add(Empty());
std::cin.ignore();
return 0;
}
我不明白爲什麼在這裏失效static_assert,V
不等於V&&
這裏?的std ::與右值引用參數模板函數內部is_rvalue_reference
V只是V這裏...... – kennytm
'V'被推斷爲'Empty',所以'V'不是右值參考類型; 'V &&'是。 –
但是如果我轉發它,它會被推斷爲V &&,我有這種感覺我錯過了這裏的東西 – Guillaume07