Skip to content

Commit cbd25c4

Browse files
committed
Hyphenate 'pointer-to-member' when it is an adjective and define the adjective.
Fixes #1369.
1 parent 4f78354 commit cbd25c4

9 files changed

+49
-48
lines changed

source/basic.tex

+4-2
Original file line numberDiff line numberDiff line change
@@ -3594,7 +3594,7 @@
35943594

35953595
\pnum
35963596
Arithmetic types\iref{basic.fundamental}, enumeration types, pointer
3597-
types, pointer to member types\iref{basic.compound},
3597+
types, pointer-to-member types\iref{basic.compound},
35983598
\tcode{std::nullptr_t},
35993599
and
36003600
cv-qualified\iref{basic.type.qualifier} versions of these
@@ -3884,7 +3884,7 @@
38843884
\pnum
38853885
A value of type \tcode{std::nullptr_t} is a null pointer
38863886
constant\iref{conv.ptr}. Such values participate in the pointer and the
3887-
pointer to member conversions~(\ref{conv.ptr}, \ref{conv.mem}).
3887+
pointer-to-member conversions~(\ref{conv.ptr}, \ref{conv.mem}).
38883888
\tcode{sizeof(std::nullptr_t)} shall be equal to \tcode{sizeof(void*)}.
38893889

38903890
\pnum
@@ -3938,6 +3938,8 @@
39383938
ordinary pointers to objects or functions.}
39393939
which identify members of a given
39403940
type within objects of a given class, \ref{dcl.mptr}.
3941+
Pointers to data members and pointers to member functions are collectively
3942+
called \term{pointer-to-member} types.
39413943
\end{itemize}
39423944

39433945
\pnum

source/conversions.tex

+9-8
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
\item Zero or one conversion from the following set: integral
2323
promotions, floating-point promotion, integral conversions, floating-point
2424
conversions, floating-integral conversions, pointer conversions,
25-
pointer to member conversions, and boolean conversions.
25+
pointer-to-member conversions, and boolean conversions.
2626

2727
\item Zero or one function pointer conversion.
2828

@@ -527,21 +527,22 @@
527527
object. The null pointer value is converted to the null pointer value of
528528
the destination type.
529529

530-
\rSec1[conv.mem]{Pointer to member conversions}
530+
\rSec1[conv.mem]{Pointer-to-member conversions}
531531

532532
\pnum
533-
\indextext{conversion!pointer to member}%
533+
\indextext{conversion!pointer-to-member}%
534534
\indextext{constant!null pointer}%
535535
\indextext{value!null member pointer}%
536-
A null pointer constant\iref{conv.ptr} can be converted to a pointer
537-
to member type; the result is the \term{null member pointer value}
536+
A null pointer constant\iref{conv.ptr} can be converted to a
537+
pointer-to-member
538+
type; the result is the \term{null member pointer value}
538539
of that type and is distinguishable from any pointer to member not
539540
created from a null pointer constant.
540541
Such a conversion is called a \term{null member pointer conversion}.
541542
Two null member pointer values of
542543
the same type shall compare equal. The conversion of a null pointer
543544
constant to a pointer to member of cv-qualified type is a single
544-
conversion, and not the sequence of a pointer to member conversion
545+
conversion, and not the sequence of a pointer-to-member conversion
545546
followed by a qualification conversion\iref{conv.qual}.
546547

547548
\pnum
@@ -571,7 +572,7 @@
571572
an object pointer or a function pointer
572573
and the rules for conversions
573574
of such pointers do not apply to pointers to members.
574-
\indextext{conversion!pointer to member!\idxcode{void*}}%
575+
\indextext{conversion!pointer-to-member!\idxcode{void*}}%
575576
In particular, a pointer to member cannot be converted to a
576577
\tcode{void*}.}
577578

@@ -600,7 +601,7 @@
600601

601602
\pnum
602603
\indextext{conversion!boolean}%
603-
A prvalue of arithmetic, unscoped enumeration, pointer, or pointer to member
604+
A prvalue of arithmetic, unscoped enumeration, pointer, or pointer-to-member
604605
type can be converted to a prvalue of type \tcode{bool}. A zero value, null
605606
pointer value, or null member pointer value is converted to \tcode{false}; any
606607
other value is converted to \tcode{true}. For

source/declarators.tex

+4-4
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
\indextext{initialization!class object|seealso{constructor}}%
88
\indextext{\idxcode{*}|see{declarator, pointer}}
99
\indextext{\idxcode{\&}|see{declarator, reference}}%
10-
\indextext{\idxcode{::*}|see{declarator, pointer to member}}%
10+
\indextext{\idxcode{::*}|see{declarator, pointer-to-member}}%
1111
\indextext{\idxcode{[]}|see{declarator, array}}%
1212
\indextext{\idxcode{()}|see{declarator, function}}%
1313

@@ -838,7 +838,7 @@
838838
\end{note}
839839

840840
\rSec2[dcl.mptr]{Pointers to members}%
841-
\indextext{declarator!pointer to member}
841+
\indextext{declarator!pointer-to-member}
842842

843843
\pnum
844844
In a declaration
@@ -870,7 +870,7 @@
870870

871871
\pnum
872872
\begin{example}%
873-
\indextext{example!pointer to member}
873+
\indextext{example!pointer-to-member}
874874

875875
\begin{codeblock}
876876
struct X {
@@ -941,7 +941,7 @@
941941
\begin{note}
942942
See also~\ref{expr.unary} and~\ref{expr.mptr.oper}.
943943
The type ``pointer to member'' is distinct from the type ``pointer'',
944-
that is, a pointer to member is declared only by the pointer to member
944+
that is, a pointer to member is declared only by the pointer-to-member
945945
declarator syntax, and never by the pointer declarator syntax.
946946
There is no ``reference-to-member'' type in \Cpp.
947947
\end{note}

source/exceptions.tex

+4-4
Original file line numberDiff line numberDiff line change
@@ -496,8 +496,8 @@
496496
\tcode{T} is an unambiguous public base class of \tcode{E}, or
497497
\item%
498498
the \grammarterm{handler} is of type \cv{}~\tcode{T} or \tcode{const T\&}
499-
where \tcode{T} is a pointer or pointer to member type and
500-
\tcode{E} is a pointer or pointer to member type
499+
where \tcode{T} is a pointer or pointer-to-member type and
500+
\tcode{E} is a pointer or pointer-to-member type
501501
that can be converted to \tcode{T} by one or more of
502502
\begin{itemize}
503503

@@ -512,15 +512,15 @@
512512
\end{itemize}
513513

514514
\item
515-
the \grammarterm{handler} is of type \cv{}~\tcode{T} or \tcode{const T\&} where \tcode{T} is a pointer or pointer to member type and \tcode{E} is \tcode{std::nullptr_t}.
515+
the \grammarterm{handler} is of type \cv{}~\tcode{T} or \tcode{const T\&} where \tcode{T} is a pointer or pointer-to-member type and \tcode{E} is \tcode{std::nullptr_t}.
516516

517517
\end{itemize}
518518

519519
\begin{note}
520520
A
521521
\grammarterm{throw-expression}
522522
whose operand is an integer literal with value zero does not match a handler of
523-
pointer or pointer to member type.
523+
pointer or pointer-to-member type.
524524
A handler of reference to array or function type
525525
is never a match for any exception object\iref{expr.throw}.
526526
\end{note}

source/expressions.tex

+11-11
Original file line numberDiff line numberDiff line change
@@ -304,7 +304,7 @@
304304
The \defn{composite pointer type} of
305305
two operands \tcode{p1} and
306306
\tcode{p2} having types \tcode{T1} and \tcode{T2}, respectively, where at least one is a
307-
pointer or pointer to member type or
307+
pointer or pointer-to-member type or
308308
\tcode{std::nullptr_t}, is:
309309

310310
\begin{itemize}
@@ -2279,8 +2279,8 @@
22792279
An argument that has type \cv{}~\tcode{std::nullptr_t} is converted
22802280
to type \tcode{void*}\iref{conv.ptr}.
22812281
After these conversions, if the
2282-
argument does not have arithmetic, enumeration, pointer, pointer to
2283-
member, or class type, the program is ill-formed. Passing a potentially-evaluated
2282+
argument does not have arithmetic, enumeration, pointer, pointer-to-member,
2283+
or class type, the program is ill-formed. Passing a potentially-evaluated
22842284
argument of class type\iref{class} having a non-trivial
22852285
copy constructor, a non-trivial move constructor,
22862286
or a
@@ -2951,7 +2951,7 @@
29512951
class\iref{class.derived} of \tcode{D},
29522952
if \cvqual{cv2} is the same cv-qualification
29532953
as, or greater cv-qualification than, \cvqual{cv1}.\footnote{Function types
2954-
(including those used in pointer to member function
2954+
(including those used in pointer-to-member-function
29552955
types) are never cv-qualified; see~\ref{dcl.fct}.}
29562956
If no valid standard conversion
29572957
from ``pointer to member of \tcode{B} of type \tcode{T}''
@@ -3122,14 +3122,14 @@
31223122

31233123
\begin{itemize}
31243124
\item converting a prvalue of type ``pointer to member function'' to a
3125-
different pointer to member function type and back to its original type
3126-
yields the original pointer to member value.
3125+
different pointer-to-member-function type and back to its original type
3126+
yields the original pointer-to-member value.
31273127

31283128
\item converting a prvalue of type ``pointer to data member of \tcode{X}
31293129
of type \tcode{T1}'' to the type ``pointer to data member of \tcode{Y}
31303130
of type \tcode{T2}'' (where the alignment requirements of \tcode{T2} are
31313131
no stricter than those of \tcode{T1}) and back to its original type
3132-
yields the original pointer to member value.
3132+
yields the original pointer-to-member value.
31333133
\end{itemize}
31343134

31353135
\pnum
@@ -3335,7 +3335,7 @@
33353335

33363336
\pnum
33373337
\indextext{name!address of cv-qualified}%
3338-
\indextext{expression!pointer to member constant}%
3338+
\indextext{expression!pointer-to-member constant}%
33393339
The result of the unary \tcode{\&} operator is a pointer to its operand.
33403340
The operand shall be an lvalue or a \grammarterm{qualified-id}.
33413341
If the operand is a \grammarterm{qualified-id} naming a non-static or variant member \tcode{m}
@@ -4877,7 +4877,7 @@
48774877
\pnum
48784878
The \tcode{==} (equal to) and the \tcode{!=} (not equal to) operators
48794879
group left-to-right. The operands shall have arithmetic, enumeration, pointer,
4880-
or pointer to member type, or type \tcode{std::nullptr_t}. The operators
4880+
or pointer-to-member type, or type \tcode{std::nullptr_t}. The operators
48814881
\tcode{==} and \tcode{!=} both yield \tcode{true} or \tcode{false}, i.e., a
48824882
result of type \tcode{bool}. In each case below, the operands shall have the
48834883
same type after the specified conversions have been applied.
@@ -4909,7 +4909,7 @@
49094909
\end{itemize}
49104910

49114911
\pnum
4912-
If at least one of the operands is a pointer to member, pointer to member
4912+
If at least one of the operands is a pointer to member, pointer-to-member
49134913
conversions\iref{conv.mem} and qualification
49144914
conversions\iref{conv.qual} are performed on both operands to bring them to
49154915
their composite pointer type\iref{expr.prop}.
@@ -5250,7 +5250,7 @@
52505250
composite pointer type\iref{expr.prop}. The result is of the composite
52515251
pointer type.
52525252

5253-
\item One or both of the second and third operands have pointer to member type;
5253+
\item One or both of the second and third operands have pointer-to-member type;
52545254
pointer to member conversions\iref{conv.mem} and qualification
52555255
conversions\iref{conv.qual} are performed to bring them to their composite
52565256
pointer type\iref{expr.prop}. The result is of the composite pointer type.

source/lex.tex

+2-2
Original file line numberDiff line numberDiff line change
@@ -1712,8 +1712,8 @@
17121712
The pointer literal is the keyword \tcode{nullptr}. It is a prvalue of type
17131713
\tcode{std::nullptr_t}.
17141714
\begin{note}
1715-
\tcode{std::nullptr_t} is a distinct type that is neither a pointer type nor a pointer
1716-
to member type; rather, a prvalue of this type is a null pointer constant and can be
1715+
\tcode{std::nullptr_t} is a distinct type that is neither a pointer type nor a pointer-to-member type;
1716+
rather, a prvalue of this type is a null pointer constant and can be
17171717
converted to a null pointer value or null member pointer value. See~\ref{conv.ptr}
17181718
and~\ref{conv.mem}.
17191719
\end{note}

source/overloading.tex

+4-4
Original file line numberDiff line numberDiff line change
@@ -2083,7 +2083,7 @@
20832083
Floating-point conversions & & & \ref{conv.double} \\ \cline{1-1}\cline{4-4}
20842084
Floating-integral conversions & & & \ref{conv.fpint} \\ \cline{1-1}\cline{4-4}
20852085
Pointer conversions & \rb{Conversion} & \rb{Conversion} & \ref{conv.ptr} \\ \cline{1-1}\cline{4-4}
2086-
Pointer to member conversions & & & \ref{conv.mem} \\ \cline{1-1}\cline{4-4}
2086+
Pointer-to-member conversions & & & \ref{conv.mem} \\ \cline{1-1}\cline{4-4}
20872087
Boolean conversions & & & \ref{conv.bool} \\
20882088
\end{floattable}
20892089

@@ -2874,7 +2874,7 @@
28742874
match targets of function pointer type or
28752875
reference to function type.
28762876
Non-static member functions match targets of
2877-
pointer to member function type.
2877+
pointer-to-member-function type.
28782878
If a non-static member function is selected, the reference to the overloaded
28792879
function name is required to have the form of a pointer to member as
28802880
described in~\ref{expr.unary.op}.
@@ -3738,7 +3738,7 @@
37383738

37393739
\pnum
37403740
For every \tcode{\placeholder{T}}, where \tcode{\placeholder{T}}
3741-
is a pointer to member type or \tcode{std::nullptr_t},
3741+
is a pointer-to-member type or \tcode{std::nullptr_t},
37423742
there exist candidate operator functions of the form
37433743

37443744
\begin{codeblock}
@@ -3805,7 +3805,7 @@
38053805
\cvqual{vq}),
38063806
where
38073807
\tcode{\placeholder{T}}
3808-
is an enumeration or pointer to member type,
3808+
is an enumeration or pointer-to-member type,
38093809
there exist candidate operator functions of the form
38103810

38113811
\begin{codeblock}

source/templates.tex

+8-9
Original file line numberDiff line numberDiff line change
@@ -7359,7 +7359,7 @@
73597359
the transformed \tcode{A}.
73607360
\item
73617361
The transformed \tcode{A}
7362-
can be another pointer or pointer to member type that can be converted
7362+
can be another pointer or pointer-to-member type that can be converted
73637363
to the deduced
73647364
\tcode{A}
73657365
via a function pointer conversion\iref{conv.fctptr} and/or
@@ -7407,8 +7407,7 @@
74077407
\pnum
74087408
When
74097409
\tcode{P}
7410-
is a function type, function pointer type, or pointer to member
7411-
function type:
7410+
is a function type, function pointer type, or pointer-to-member-function type:
74127411
\begin{itemize}
74137412
\item
74147413
If the argument is an overload set containing one or more function templates,
@@ -7582,12 +7581,12 @@
75827581
\tcode{A} can be ``pointer to function''
75837582
even if the deduced \tcode{A} is ``pointer to noexcept function''.
75847583
\item
7585-
If the original \tcode{A} is a pointer to member function type,
7584+
If the original \tcode{A} is a pointer-to-member-function type,
75867585
\tcode{A} can be ``pointer to member of type function''
75877586
even if the deduced \tcode{A} is ``pointer to member of type noexcept function''.
75887587
\item
75897588
The deduced \tcode{A}
7590-
can be another pointer or pointer to member type that
7589+
can be another pointer or pointer-to-member type that
75917590
can be converted to \tcode{A} via a qualification conversion.
75927591
\end{itemize}
75937592

@@ -7600,7 +7599,7 @@
76007599

76017600
\pnum
76027601
When the deduction process requires a qualification conversion for a
7603-
pointer or pointer to member type as described above, the following
7602+
pointer or pointer-to-member type as described above, the following
76047603
process is used to determine the deduced template argument values:
76057604

76067605
If
@@ -7902,7 +7901,7 @@
79027901
A function type includes the types of each of the function parameters
79037902
and the return type.
79047903
\item
7905-
A pointer to member type includes the type of the class object pointed to
7904+
A pointer-to-member type includes the type of the class object pointed to
79067905
and the type of the member pointed to.
79077906
\item
79087907
A type that is a specialization of a class template (e.g.,
@@ -8421,8 +8420,8 @@
84218420
\pnum
84228421
A
84238422
\grammarterm{template-argument}
8424-
can be deduced from a function, pointer to function, or pointer to
8425-
member function type.
8423+
can be deduced from a function, pointer to function, or
8424+
pointer-to-member-function type.
84268425

84278426
\begin{example}
84288427

source/utilities.tex

+3-4
Original file line numberDiff line numberDiff line change
@@ -15518,11 +15518,11 @@
1551815518
\indexlibrary{\idxcode{is_member_object_pointer}}%
1551915519
\tcode{template <class T>}\br
1552015520
\tcode{struct is_member_object_pointer;}&
15521-
\tcode{T} is a pointer to non-static data member & \\ \rowsep
15521+
\tcode{T} is a pointer to data member & \\ \rowsep
1552215522
\indexlibrary{\idxcode{is_member_function_pointer}}%
1552315523
\tcode{template <class T>}\br
1552415524
\tcode{struct is_member_function_pointer;}&
15525-
\tcode{T} is a pointer to non-static member function & \\ \rowsep
15525+
\tcode{T} is a pointer to member function & \\ \rowsep
1552615526
\indexlibrary{\idxcode{is_enum}}%
1552715527
\tcode{template <class T>}\br
1552815528
\tcode{struct is_enum;} &
@@ -15586,8 +15586,7 @@
1558615586
\indexlibrary{\idxcode{is_member_pointer}}%
1558715587
\tcode{template <class T>}\br
1558815588
\tcode{struct is_member_pointer;} &
15589-
\tcode{T} is a pointer to non-static data member
15590-
or non-static member function & \\
15589+
\tcode{T} is a pointer-to-member type\iref{basic.compound} & \\
1559115590
\end{libreqtab3b}
1559215591

1559315592
\rSec3[meta.unary.prop]{Type properties}

0 commit comments

Comments
 (0)