|
59 | 59 | whenever a name is encountered it is necessary to determine whether that name denotes
|
60 | 60 | one of these entities before continuing to parse the program that contains it. The
|
61 | 61 | process that determines this is called
|
62 |
| -\indextext{lookup!name}% |
63 |
| -\term{name lookup}~(\ref{basic.lookup}). |
| 62 | +\defnx{name lookup}{lookup!name}~(\ref{basic.lookup}). |
64 | 63 |
|
65 | 64 | \pnum
|
66 | 65 | Two names are \term{the same} if
|
|
824 | 823 | \rSec2[basic.funscope]{Function scope}
|
825 | 824 |
|
826 | 825 | \pnum
|
827 |
| -\indextext{scope!function}% |
828 | 826 | \indextext{label!scope~of}%
|
829 |
| -Labels~(\ref{stmt.label}) have \term{function scope} and |
| 827 | +Labels~(\ref{stmt.label}) have \defnx{function scope}{scope!function} and |
830 | 828 | may be used anywhere in the function in which they are declared. Only
|
831 | 829 | labels have function scope.
|
832 | 830 |
|
|
3266 | 3264 |
|
3267 | 3265 | \pnum
|
3268 | 3266 | \indextext{object~lifetime|(}%
|
3269 |
| -\indextext{initialization!non-vacuous}% |
3270 | 3267 | The \defn{lifetime} of an object or reference is a runtime property of the
|
3271 | 3268 | object or reference.
|
3272 |
| -An object is said to have \term{non-vacuous initialization} if it is of a class or |
| 3269 | +An object is said to have \defnx{non-vacuous initialization}{initialization!non-vacuous} if it is of a class or |
3273 | 3270 | aggregate type and it or one of its subobjects is initialized by a constructor
|
3274 | 3271 | other than a trivial default constructor. \begin{note} initialization by a
|
3275 | 3272 | trivial copy/move constructor is non-vacuous initialization. \end{note}
|
|
3678 | 3675 | and
|
3679 | 3676 | cv-qualified versions of these
|
3680 | 3677 | types~(\ref{basic.type.qualifier}) are collectively called
|
3681 |
| -\indextext{scalar~type}% |
3682 |
| -\term{scalar types}. Scalar types, |
| 3678 | +\defnx{scalar types}{scalar~type}. Scalar types, |
3683 | 3679 | POD classes (Clause~\ref{class}), arrays of such types and
|
3684 | 3680 | cv-qualified versions of these
|
3685 | 3681 | types~(\ref{basic.type.qualifier}) are collectively called
|
3686 |
| -\indextext{type!POD}% |
3687 |
| -\term{POD types}. |
| 3682 | +\defnx{POD types}{type!POD}. |
3688 | 3683 | Cv-unqualified scalar types, trivially copyable class types (Clause~\ref{class}), arrays of
|
3689 | 3684 | such types, and non-volatile const-qualified versions of these
|
3690 | 3685 | types~(\ref{basic.type.qualifier}) are collectively called \defn{trivially
|
|
3739 | 3734 | \indextext{type!Boolean}%
|
3740 | 3735 | \indextext{type!\idxcode{char}}%
|
3741 | 3736 | \indextext{type!character}%
|
3742 |
| -\indextext{type!narrow character}% |
3743 | 3737 | Objects declared as characters (\tcode{char}) shall be large enough to
|
3744 | 3738 | store any member of the implementation's basic character set. If a
|
3745 | 3739 | character from this set is stored in a character object, the integral
|
|
3753 | 3747 | \tcode{signed}.
|
3754 | 3748 | \indextext{character!\idxcode{signed}}%
|
3755 | 3749 | Plain \tcode{char}, \tcode{signed char}, and \tcode{unsigned char} are
|
3756 |
| -three distinct types, collectively called \term{narrow character types}. |
| 3750 | +three distinct types, collectively called \defnx{narrow character types}{type!narrow character}. |
3757 | 3751 | A \tcode{char}, a \tcode{signed char}, and an
|
3758 | 3752 | \tcode{unsigned char} occupy the same amount of storage and have the
|
3759 | 3753 | same alignment requirements~(\ref{basic.align}); that is, they have the
|
|
3779 | 3773 |
|
3780 | 3774 | \pnum
|
3781 | 3775 | \indextext{type!standard~signed~integer}%
|
3782 |
| -\indextext{standard~signed~integer~type}% |
3783 |
| -There are five \term{standard signed integer types} : |
| 3776 | +There are five \defnx{standard signed integer types}{standard~signed~integer~type}: |
3784 | 3777 | \indextext{type!\idxcode{signed char}}%
|
3785 | 3778 | \indextext{type!\idxcode{short}}%
|
3786 | 3779 | \indextext{type!\idxcode{int}}%
|
|
3791 | 3784 | this list, each type provides at least as much storage as those
|
3792 | 3785 | preceding it in the list.
|
3793 | 3786 | \indextext{type!extended~signed~integer}%
|
3794 |
| -\indextext{extended~signed~integer~type}% |
3795 | 3787 | \indextext{type!signed~integer}%
|
3796 |
| -\indextext{signed~integer~type}% |
3797 |
| -There may also be \impldef{extended signed integer types} \term{extended signed |
3798 |
| -integer types}. The standard and |
3799 |
| -extended signed integer types are collectively called \term{signed integer types}. |
| 3788 | +There may also be \impldef{extended signed integer types} |
| 3789 | +\defnx{extended signed integer types}{extended~signed~integer~type}. The standard and |
| 3790 | +extended signed integer types are collectively called \defnx{signed integer types}{signed~integer~type}. |
3800 | 3791 | \indextext{integral~type!implementation-defined @\tcode{sizeof}}%
|
3801 | 3792 | Plain
|
3802 | 3793 | \tcode{int}s have the natural size suggested by the architecture of the
|
|
3812 | 3803 | For each of the standard signed integer types,
|
3813 | 3804 | there exists a corresponding (but different)
|
3814 | 3805 | \indextext{type!standard~unsigned~integer}%
|
3815 |
| -\indextext{standard~unsigned~integer~type}% |
3816 |
| -\term{standard unsigned integer type}: |
| 3806 | +\defnx{standard unsigned integer type}{standard~unsigned~integer~type}: |
3817 | 3807 | \indextext{type!\idxcode{unsigned char}}%
|
3818 | 3808 | \indextext{type!\idxcode{unsigned short}}%
|
3819 | 3809 | \indextext{type!\idxcode{unsigned int}}%
|
|
3829 | 3819 | that is, each signed integer type has the same object representation as
|
3830 | 3820 | its corresponding unsigned integer type.
|
3831 | 3821 | \indextext{type!extended~unsigned~integer}%
|
3832 |
| -\indextext{extended~unsigned~integer~type}% |
3833 | 3822 | \indextext{type!unsigned~integer}%
|
3834 |
| -\indextext{unsigned~integer~type}% |
3835 | 3823 | Likewise, for each of the extended signed integer types there exists a
|
3836 |
| -corresponding \term{extended unsigned integer type} with the same amount of storage and alignment |
| 3824 | +corresponding \defnx{extended unsigned integer type}{extended~unsigned~integer~type} |
| 3825 | +with the same amount of storage and alignment |
3837 | 3826 | requirements. The standard and extended unsigned integer types are
|
3838 |
| -collectively called \term{unsigned integer types}. The range of non-negative |
| 3827 | +collectively called \defnx{unsigned integer types}{unsigned~integer~type}. The range of non-negative |
3839 | 3828 | values of a \term{signed integer} type is a subrange of the corresponding
|
3840 | 3829 | \term{unsigned integer} type, and the value
|
3841 | 3830 | representation of each corresponding signed/unsigned type shall be the
|
3842 | 3831 | same.
|
3843 | 3832 | \indextext{type!standard~integer}%
|
3844 |
| -\indextext{standard~integer~type}% |
3845 | 3833 | \indextext{type!extended~integer}%
|
3846 |
| -\indextext{extended~integer~type}% |
3847 | 3834 | The standard signed integer types and standard unsigned integer types
|
3848 |
| -are collectively called the \term{standard integer types}, and the extended |
| 3835 | +are collectively called the \defnx{standard integer types}{standard~integer~type}, and the extended |
3849 | 3836 | signed integer types and extended
|
3850 |
| -unsigned integer types are collectively called the \term{extended |
3851 |
| -integer types}. The signed and unsigned integer types shall satisfy |
| 3837 | +unsigned integer types are collectively called the \defnx{extended |
| 3838 | +integer types}{extended~integer~type}. The signed and unsigned integer types shall satisfy |
3852 | 3839 | the constraints given in the C standard, section 5.2.4.2.1.
|
3853 | 3840 |
|
3854 | 3841 | \pnum
|
|
3892 | 3879 | Types \tcode{bool}, \tcode{char}, \tcode{char16_t}, \tcode{char32_t},
|
3893 | 3880 | \tcode{wchar_t}, and the signed and unsigned integer types are
|
3894 | 3881 | collectively called
|
3895 |
| -\indextext{integral~type}% |
3896 |
| -\term{integral} types.\footnote{Therefore, enumerations~(\ref{dcl.enum}) are not integral; however, |
| 3882 | +\defnx{integral}{integral~type} types.\footnote{Therefore, enumerations~(\ref{dcl.enum}) are not integral; however, |
3897 | 3883 | enumerations can be promoted to integral types as specified
|
3898 | 3884 | in~\ref{conv.prom}.}
|
3899 | 3885 | A synonym for integral type is
|
3900 |
| -\indextext{integer~type}% |
3901 |
| -\term{integer type}. The representations of integral types shall |
| 3886 | +\defnx{integer type}{integer~type}. The representations of integral types shall |
3902 | 3887 | define values by use of a pure binary numeration system.\footnote{A positional
|
3903 | 3888 | representation for integers that uses the binary digits 0
|
3904 | 3889 | and 1, in which the values represented by successive bits are additive,
|
|
3910 | 3895 | \end{example}
|
3911 | 3896 |
|
3912 | 3897 | \pnum
|
3913 |
| -\indextext{floating~point~type}% |
3914 |
| -There are three \term{floating point} types: |
| 3898 | +There are three \defnx{floating point}{floating~point~type} types: |
3915 | 3899 | \indextext{type!\idxcode{float}}%
|
3916 | 3900 | \tcode{float},
|
3917 | 3901 | \indextext{type!\idxcode{double}}%
|
|
3927 | 3911 | representation of floating-point types is \impldef{value representation of
|
3928 | 3912 | floating-point types}.
|
3929 | 3913 | \indextext{floating~point~type!implementation-defined}%
|
3930 |
| -\indextext{type!arithmetic}% |
3931 | 3914 | \begin{note}
|
3932 | 3915 | This International Standard imposes no requirements on the accuracy of
|
3933 | 3916 | floating-point operations; see also~\ref{limits}.
|
3934 | 3917 | \end{note}
|
3935 | 3918 | \term{Integral} and \term{floating} types are collectively
|
3936 |
| -called \term{arithmetic} types. |
| 3919 | +called \defnx{arithmetic}{type!arithmetic} types. |
3937 | 3920 | \indextext{\idxcode{numeric_limits}!specializations for arithmetic types}%
|
3938 | 3921 | Specializations of the standard library template
|
3939 | 3922 | \tcode{std::numeric_limits}~(\ref{support.limits}) shall specify the
|
|
3999 | 3982 | \item \term{rvalue reference}
|
4000 | 3983 | \end{itemize}
|
4001 | 3984 |
|
4002 |
| -\item \indextext{class}% |
4003 |
| -\term{classes} containing a sequence of objects of various types |
| 3985 | +\item |
| 3986 | +\defnx{classes}{class} containing a sequence of objects of various types |
4004 | 3987 | (Clause~\ref{class}), a set of types, enumerations and functions for
|
4005 | 3988 | manipulating these objects~(\ref{class.mfct}), and a set of restrictions
|
4006 | 3989 | on the access to these entities (Clause~\ref{class.access});
|
|
0 commit comments