This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of NAD status.
std::size_t
in a header imply that typedef name is available to users?Section: 16.4.3 [using] Status: NAD Submitter: BSI Opened: 2010-08-25 Last modified: 2016-01-28
Priority: Not Prioritized
View all issues with NAD status.
Discussion:
Addresses GB-58
It is not clear whether a library header specified in terms of a typedef name makes that same typedef name available for use, or if it simply requires that the specified type is an alias of the same type, and so the typedef name cannot be used without including the specific header that defines it. For example, is the following code required to be accepted:
#include <vector> std::size_t x = 0;
Most often, this question concerns the typedefs defined in
header <cstddef>
[ Resolution proposed by ballot comment: ]
Add a paragraph under 16.4.3 [using] clarifying whether
or not headers specified in terms of std::size_t
can
be used to access the typedef size_t
, or whether
the header <cstddef>
must be included to reliably
use this name.
[Batavia: NAD - see rationale below]
Proposed resolution:
Rationale:
The standard is correct as written.