Вот подмножество моего кода.Почему он не может связать const int
со ссылкой на rvalue?Я ожидаю, что T
будет выведено как int const &
, а тип e
как int const & &&
будет сложен в int const &
.
template <typename T>
List<T>::List(initializer_list<T> il)
{
for (T const & i : il) insertAsLast(i);
}
template <typename T>
ListNode<T> * List<T>::insertAsLast(T && e)
{
++_size; return trailer->insertAsPrev(std::forward<T>(e));
}
template <typename T>
ListNode<T> * ListNode<T>::insertAsPrev(T && e)
{
pnode node = new ListNode<T>(std::forward<T>(e), prev, this);
prev->next = node; prev = node;
return node;
}
int main()
{
List<int> l = {1, 3, 2, 1, 34, 5, 2, 34, , 4};
}
Ошибка:
не может связать const int со ссылкой на rvalue