C++ 插入迭代器的右值是否可以是一个普通迭代器

C++primer中文第5版 p358:
原文:如果it是由inserter生成的迭代器,则下面这样的赋值语句
*it = val;
其效果与下面代码一样
it = c.insert(it, val); //it指向新加入的元素
++it; // 递增it使它指向原来的元素

#include <iostream>
#include <iterator>
#include <list>
using namespace std;
int main() {
    list<int> c = {1,2,3,4,5};
    auto it = inserter(c,c.begin());
    it = c.insert(it,0);
    return 0;
}

这里编译器报了2个错:
(1)error: no matching member function for call to 'insert'
(2)No viable overloaded '='

推测inserter不能作为insert的参数,并且inserter的右值不能是一个iter

insert函数的用法参考: