Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 1 addition & 57 deletions source/compatibility.tex
Original file line number Diff line number Diff line change
Expand Up @@ -2868,21 +2868,6 @@
\howwide
Programs which depend upon \tcode{sizeof('x')} are probably rare.

\diffref{lex.string}
\change
Concatenated \grammarterm{string-literal}s can no longer have
conflicting \grammarterm{encoding-prefix}es.
\rationale
Removal of non-portable feature.
\effect
Concatenation of \grammarterm{string-literal}s
with different \grammarterm{encoding-prefix}es
is now ill-formed.
\difficulty
Syntactic transformation.
\howwide
Seldom.

\diffref{lex.string}
\change
String literals made const.\\
Expand Down Expand Up @@ -3431,34 +3416,6 @@
\howwide
Rare.

\diffref{dcl.fct}
\change
In \Cpp{}, a function declared with an empty parameter list takes no arguments.
In C, an empty parameter list means that the number and type of the function arguments are unknown.

\begin{example}
\begin{codeblock}
int f(); // means \tcode{int f(void)} in \Cpp{}
// \tcode{int f(} unknown \tcode{)} in C
\end{codeblock}
\end{example}

\rationale
This is to avoid function calls
with the wrong number or type of arguments.
\effect
Change to semantics of well-defined feature.
This feature was marked as ``obsolescent'' in C.
\difficulty
Syntactic transformation.
The function declarations using C incomplete declaration style must
be completed to become full prototype declarations.
A program may need to be updated further if different calls to the
same (non-prototype) function have different numbers of arguments or
if the type of corresponding arguments differed.
\howwide
Common.

\diffref{dcl.fct} [see \ref{expr.sizeof}]
\change
In \Cpp{}, types may not be defined in return or parameter types.
Expand Down Expand Up @@ -3486,19 +3443,6 @@
Seldom.
This style of type definition is seen as poor coding style.

\diffref{dcl.fct.def}
\change
In \Cpp{}, the syntax for function definition excludes the ``old-style'' C function.
In C, ``old-style'' syntax is allowed, but deprecated as ``obsolescent''.
\rationale
Prototypes are essential to type safety.
\effect
Deletion of semantically well-defined feature.
\difficulty
Syntactic transformation.
\howwide
Common in old programs, but already known to be obsolescent.

\diffref{dcl.init.aggr}
\change
In \Cpp{}, designated initialization support is restricted
Expand All @@ -3509,7 +3453,7 @@
designators for array elements and nested designators
are not supported,
and
designated and non-designated initializers
designated and non-designated initializers for non-static data members
cannot be mixed in the same initializer list.

\begin{example}
Expand Down
Loading