Which std::unique_ptr initialization is not valid

Question | Dec 29, 2016 | nextptr 

A std::unique_ptr can be initialized with a raw pointer or another std::unique_ptr of compatible type.

These are 3 different cases of initialization of a std::unique_ptr:

A.

// Initialize with a raw pointer
std::unique_ptr<int> uiPtrA(new int(100));

B.

// Initialize with a std::unique_ptr<int> through copy 
// Assume tmpPtr is a std::unique_ptr<int>
std::unique_ptr<int> uiPtrB(tmpPtr);

C.

// Initialize with a std::unique_ptr<int> through move 
// Assume tmpPtr is a std::unique_ptr<int>
std::unique_ptr<int> uiPtrC(std::move(tmpPtr));

Which one of above cases of std::unique_ptr initialization will not compile?