|
1923 | 1923 | are determined as follows: |
1924 | 1924 | \begin{itemize} |
1925 | 1925 | \item |
1926 | | -for a non-discarded \tcode{return} statement that occurs |
| 1926 | +For a non-discarded \tcode{return} statement that occurs |
1927 | 1927 | in a function declared with a return type |
1928 | 1928 | that contains a placeholder type, |
1929 | 1929 | \tcode{T} is the declared return type |
1930 | 1930 | and $E$ is the operand of the \tcode{return} statement. |
1931 | 1931 | If the \tcode{return} statement |
1932 | 1932 | has no operand, |
1933 | | -then $E$ is \tcode{void()}; |
| 1933 | +then $E$ is \tcode{void()}. |
1934 | 1934 | \item |
1935 | | -for a variable declared with a type |
| 1935 | +For a variable declared with a type |
1936 | 1936 | that contains a placeholder type, |
1937 | | -\tcode{T} is the declared type of the variable |
1938 | | -and $E$ is the initializer. |
| 1937 | +\tcode{T} is the declared type of the variable. |
| 1938 | +If the initializer of the variable is a \grammarterm{brace-or-equal-initializer} |
| 1939 | +of the form \tcode{= \grammarterm{initializer-clause}}, |
| 1940 | +$E$ is the \grammarterm{initializer-clause}. |
1939 | 1941 | If the initialization is direct-list-initialization, |
1940 | 1942 | the initializer shall be a \grammarterm{braced-init-list} |
1941 | 1943 | containing only a single \grammarterm{assignment-expression} |
1942 | | -and $E$ is the \grammarterm{assignment-expression}; |
| 1944 | +and $E$ is the \grammarterm{assignment-expression}. |
| 1945 | +Otherwise, $E$ is the initializer. |
1943 | 1946 | \item |
1944 | | -for a non-type template parameter declared with a type |
| 1947 | +For a non-type template parameter declared with a type |
1945 | 1948 | that contains a placeholder type, |
1946 | 1949 | \tcode{T} is the declared type of the non-type template parameter |
1947 | 1950 | and $E$ is the corresponding template argument. |
|
0 commit comments