This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of C++11 status.

### 1408. Allow recycling of pointers after `undeclare_no_pointers`

Section: 99 [util.dynamic.safety] Status: C++11 Submitter: BSI Opened: 2010-08-25 Last modified: 2016-01-28

Priority: Not Prioritized

View all other issues in [util.dynamic.safety].

View all issues with C++11 status.

Discussion:

Addresses GB-103

The precondition to calling `declare_no_pointers` is that no bytes in the range "have been previously registered" with this call. As written, this precondition includes bytes in ranges, even after they have been explicitly unregistered with a later call to `undeclare_no_pointers`.

Proposed resolution:

Update 99 [util.dynamic.safety] p.9:

>     void declare_no_pointers(char *p, size_t n);

> > `9` Requires: No bytes in the specified range have been previously registered are currently registered with `declare_no_pointers()`. If the specified range is in an allocated object, then it must be entirely within a single allocated object. The object must be live until the corresponding `undeclare_no_pointers()` call. [..]