|
3 | 3 |
|
4 | 4 | \gramSec[gram.special]{Special member functions}
|
5 | 5 |
|
6 |
| -\indextext{special member function|see{constructor}}% |
7 |
| -\indextext{special member function|see{destructor}}% |
8 |
| -\indextext{special member function|see{inline function}}% |
9 |
| -\indextext{special member function|see{user-defined conversion}}% |
10 |
| -\indextext{special member function|see{virtual function}}% |
11 | 6 | \indextext{\idxcode{X(X\&)}|see{constructor, copy}}%
|
12 | 7 | \indextext{~@\tcode{\tilde}|see{destructor}}%
|
13 | 8 | \indextext{assignment!copy|see{assignment operator, copy}}%
|
|
73 | 68 | classes are called its \term{potentially constructed subobjects}.
|
74 | 69 |
|
75 | 70 | \rSec1[class.ctor]{Constructors}%
|
76 |
| -\indextext{constructor} |
| 71 | +\indextext{constructor}% |
| 72 | +\indextext{special member function|see{constructor}}% |
77 | 73 |
|
78 | 74 | \pnum
|
79 | 75 | Constructors do not have names.
|
|
937 | 933 | \end{example}
|
938 | 934 |
|
939 | 935 | \rSec1[class.dtor]{Destructors}%
|
940 |
| -\indextext{destructor} |
| 936 | +\indextext{destructor}% |
| 937 | +\indextext{special member function|see{destructor}}% |
941 | 938 |
|
942 | 939 | \pnum
|
943 | 940 | In a declaration of a destructor, the \grammarterm{declarator} is a
|
|
2398 | 2395 | \indextext{construction|)}%
|
2399 | 2396 |
|
2400 | 2397 | \rSec1[class.copy]{Copying and moving class objects}%
|
2401 |
| -\indextext{copy!class object|see{constructor, copy}}% |
2402 |
| -\indextext{copy!class object|see{assignment, copy}}% |
2403 |
| -\indextext{move!class object|see{constructor, move}}% |
2404 |
| -\indextext{move!class object|see{assignment, move}}% |
2405 |
| -\indextext{operator!copy assignment|see{assignment, copy}}% |
2406 |
| -\indextext{operator!move assignment|see{assignment, move}} |
2407 | 2398 |
|
2408 | 2399 | \pnum
|
2409 | 2400 | A class object can be copied or moved in two ways:
|
|
2432 | 2423 | \pnum
|
2433 | 2424 | \indextext{constructor!copy|(}%
|
2434 | 2425 | \indextext{constructor!move|(}%
|
| 2426 | +\indextext{copy!class object|see{constructor, copy}}% |
| 2427 | +\indextext{move!class object|see{constructor, move}}% |
2435 | 2428 | A non-template constructor for class
|
2436 | 2429 | \tcode{X}
|
2437 | 2430 | is
|
|
2751 | 2744 | \pnum
|
2752 | 2745 | \indextext{assignment operator!copy|(}%
|
2753 | 2746 | \indextext{assignment operator!move|(}%
|
| 2747 | +\indextext{special member function|see{assignment operator}}% |
| 2748 | +\indextext{copy!class object|see{assignment operator, copy}}% |
| 2749 | +\indextext{move!class object|see{assignment operator, move}}% |
| 2750 | +\indextext{operator!copy assignment|see{assignment operator, copy}}% |
| 2751 | +\indextext{operator!move assignment|see{assignment operator, move}} |
2754 | 2752 | A user-declared \term{copy} assignment operator \tcode{X::operator=} is a
|
2755 | 2753 | non-static non-template member function of class \tcode{X} with exactly one
|
2756 | 2754 | parameter of type \tcode{X}, \tcode{X\&}, \tcode{const} \tcode{X\&},
|
|
3108 | 3106 | is not executed, there is still one object destroyed for each one constructed.}
|
3109 | 3107 | This elision of copy/move operations, called
|
3110 | 3108 | \indexdefn{copy elision|see{constructor, copy, elision}}%
|
3111 |
| -\indexdefn{copy elision|see{constructor, move, elision}}% |
3112 | 3109 | \indexdefn{elision!copy|see{constructor, copy, elision}}%
|
3113 |
| -\indexdefn{elision!copy|see{constructor, move, elision}}% |
3114 | 3110 | \indexdefn{constructor!copy!elision}\indexdefn{constructor!move!elision}\term{copy elision},
|
3115 | 3111 | is permitted in the
|
3116 | 3112 | following circumstances (which may be combined to
|
|
0 commit comments