cpp/experimental/unique resource/unique resource

Follow items are used for explanatory purpose:
 * is the type of stored resource handle.
 * The expression refers the underlying resource handle.
 * refers the deleter object.

@1@ Default constructor. Value-initializes the stored resource handle and the deleter. The constructed does not own the resource. @@.

@2@ The stored resource handle is initialized with if  is, otherwise. If initialization of the stored resource handle throws an exception, calls. Then, the deleter is initialized with if  is, otherwise. If initialization of deleter throws an exception, calls. The constructed owns the resource. @@ . @@ The program is ill-formed if any of the expressions, and  is ill-formed. @@ The behavior is undefined if any of the expressions, and  results in undefined behavior or throws an exception.

@3@ Move constructor. The stored resource handle is initialized from the one of, using if  is. If initialization of the stored resource handle throws an exception, is not modified. Then, the deleter is initialized with the one of, using if  is. If initialization of the deleter throws an exception and is  and  owns the resource, calls the deleter of  with  to dispose the resource, then calls. After construction, the constructed owns its resource if and only if  owned the resource before the construction, and  is set to not own the resource.

Exceptions
Any exception thrown during initialization of the stored resource handle or the deleter. @2@ @3@