The key point is this:
This is a help to the compiler and the coder that there is no risk of dealing with this pointer in the sense that it should never point to the same data as anything else in that function.
Your two points says that these two operations are not forbidden by the unique attribute:
Point 1:
Code:
char [unique] *ptr;
char array[] = "Hello";
ptr = array;
...
ptr = NULL;
...
ptr = new char [30];
...
Point 2:
Code:
ptr = new char [30];
... // no "delete ptr" here
ptr = NULL;
Point 2 obviously means a memory leak (orphaned memory), but it's still valid use of a unique pointer.
It is NOT valid to do this:
Code:
char [unique] *ptr1;
char [unique] *ptr2;
char array[] = "Hello";
ptr1 = array;
ptr2 = ptr1;
ptr2 has the same value as ptr1 which means that the pointer is not unique.
--
Mats