From Jason Turner

[diff.cpp23.lex]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmp0u6jlepw/{from.md → to.md} +24 -0
tmp/tmp0u6jlepw/{from.md → to.md} RENAMED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ### [[lex]]: lexical conventions <a id="diff.cpp23.lex">[[diff.cpp23.lex]]</a>
2
+
3
+ **Change:** New operator `^^`. **Rationale:** Required for new features.
4
+ **Effect on original feature:** Valid C++23 code that contains two
5
+ consecutive `^` tokens can be ill-formed in this revision of C++.
6
+
7
+ [*Example 1*:
8
+
9
+ ``` cpp
10
+ struct C { int operator^(int); };
11
+ int operator^(int (C::*p)(int), C);
12
+ int i = &C::operator^^C{}; // ill-formed; previously well-formed
13
+ ```
14
+
15
+ — *end example*]
16
+
17
+ **Change:** New keywords. **Rationale:** Required for new features.
18
+
19
+ - The `contract_assert` keyword is added to introduce a contract
20
+ assertion through an *assertion-statement* [[stmt.contract.assert]].
21
+
22
+ **Effect on original feature:** Valid C++23 code using `contract_assert`
23
+ as an identifier is not valid in this revision of C++.
24
+