(ваш пример не компилируется в текущем редакторе, я просто собираюсь предположить, каково было ваше намерение)
Нет, это не так.Под нарезкой понимается копирование производных объектов в базовый объект, а не на производный указатель в базовый указатель (здесь unique_ptr - красная сельдь).
Это приводит к разрезанию:
class a { };
class b : public a { };
void foo(a myvar) { };
int main()
{
b myb;
foo(myb);
}
Это не:
class a { };
class b : public a { };
void foo(a* myvar) { };
int main()
{
b myb;
foo(&myb);
}