Skip to content

Commit b86875a

Browse files
committed
LWG4370 Comparison of optional<T> to T may be ill-formed
1 parent 760ddc3 commit b86875a

File tree

1 file changed

+72
-12
lines changed

1 file changed

+72
-12
lines changed

source/utilities.tex

Lines changed: 72 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5252,7 +5252,12 @@
52525252

52535253
\pnum
52545254
\effects
5255-
Equivalent to: \tcode{return x.has_value() ? *x == v : false;}
5255+
Equivalent to:
5256+
\begin{codeblock}
5257+
if (x.has_value())
5258+
return *x == v;
5259+
return false;
5260+
\end{codeblock}
52565261
\end{itemdescr}
52575262

52585263
\indexlibrarymember{operator==}{optional}%
@@ -5269,7 +5274,12 @@
52695274

52705275
\pnum
52715276
\effects
5272-
Equivalent to: \tcode{return x.has_value() ? v == *x : false;}
5277+
Equivalent to:
5278+
\begin{codeblock}
5279+
if (x.has_value())
5280+
return *x == v;
5281+
return false;
5282+
\end{codeblock}
52735283
\end{itemdescr}
52745284

52755285
\indexlibrarymember{operator"!=}{optional}%
@@ -5286,7 +5296,12 @@
52865296

52875297
\pnum
52885298
\effects
5289-
Equivalent to: \tcode{return x.has_value() ? *x != v : true;}
5299+
Equivalent to:
5300+
\begin{codeblock}
5301+
if (x.has_value())
5302+
return *x != v;
5303+
return true;
5304+
\end{codeblock}
52905305
\end{itemdescr}
52915306

52925307
\indexlibrarymember{operator"!=}{optional}%
@@ -5303,7 +5318,12 @@
53035318

53045319
\pnum
53055320
\effects
5306-
Equivalent to: \tcode{return x.has_value() ? v != *x : true;}
5321+
Equivalent to:
5322+
\begin{codeblock}
5323+
if (x.has_value())
5324+
return *x != v;
5325+
return true;
5326+
\end{codeblock}
53075327
\end{itemdescr}
53085328

53095329
\indexlibrarymember{operator<}{optional}%
@@ -5320,7 +5340,12 @@
53205340

53215341
\pnum
53225342
\effects
5323-
Equivalent to: \tcode{return x.has_value() ? *x < v : true;}
5343+
Equivalent to:
5344+
\begin{codeblock}
5345+
if (x.has_value())
5346+
return *x < v;
5347+
return true;
5348+
\end{codeblock}
53245349
\end{itemdescr}
53255350

53265351
\indexlibrarymember{operator<}{optional}%
@@ -5337,7 +5362,12 @@
53375362

53385363
\pnum
53395364
\effects
5340-
Equivalent to: \tcode{return x.has_value() ? v < *x : false;}
5365+
Equivalent to:
5366+
\begin{codeblock}
5367+
if (x.has_value())
5368+
return v == *x;
5369+
return false;
5370+
\end{codeblock}
53415371
\end{itemdescr}
53425372

53435373
\indexlibrarymember{operator>}{optional}%
@@ -5354,7 +5384,12 @@
53545384

53555385
\pnum
53565386
\effects
5357-
Equivalent to: \tcode{return x.has_value() ? *x > v : false;}
5387+
Equivalent to:
5388+
\begin{codeblock}
5389+
if (x.has_value())
5390+
return *x > v;
5391+
return false;
5392+
\end{codeblock}
53585393
\end{itemdescr}
53595394

53605395
\indexlibrarymember{operator>}{optional}%
@@ -5371,7 +5406,12 @@
53715406

53725407
\pnum
53735408
\effects
5374-
Equivalent to: \tcode{return x.has_value() ? v > *x : true;}
5409+
Equivalent to:
5410+
\begin{codeblock}
5411+
if (x.has_value())
5412+
return v > *x;
5413+
return true;
5414+
\end{codeblock}
53755415
\end{itemdescr}
53765416

53775417
\indexlibrarymember{operator<=}{optional}%
@@ -5388,7 +5428,12 @@
53885428

53895429
\pnum
53905430
\effects
5391-
Equivalent to: \tcode{return x.has_value() ? *x <= v : true;}
5431+
Equivalent to:
5432+
\begin{codeblock}
5433+
if (x.has_value())
5434+
return *x <= v;
5435+
return true;
5436+
\end{codeblock}
53925437
\end{itemdescr}
53935438

53945439
\indexlibrarymember{operator<=}{optional}%
@@ -5405,7 +5450,12 @@
54055450

54065451
\pnum
54075452
\effects
5408-
Equivalent to: \tcode{return x.has_value() ? v <= *x : false;}
5453+
Equivalent to:
5454+
\begin{codeblock}
5455+
if (x.has_value())
5456+
return v <= *x;
5457+
return false;
5458+
\end{codeblock}
54095459
\end{itemdescr}
54105460

54115461
\indexlibrarymember{operator>=}{optional}%
@@ -5422,7 +5472,12 @@
54225472

54235473
\pnum
54245474
\effects
5425-
Equivalent to: \tcode{return x.has_value() ? *x >= v : false;}
5475+
Equivalent to:
5476+
\begin{codeblock}
5477+
if (x.has_value())
5478+
return *x >= v;
5479+
return false;
5480+
\end{codeblock}
54265481
\end{itemdescr}
54275482

54285483
\indexlibrarymember{operator>=}{optional}%
@@ -5439,7 +5494,12 @@
54395494

54405495
\pnum
54415496
\effects
5442-
Equivalent to: \tcode{return x.has_value() ? v >= *x : true;}
5497+
Equivalent to:
5498+
\begin{codeblock}
5499+
if (x.has_value())
5500+
return v >= *x;
5501+
return true;
5502+
\end{codeblock}
54435503
\end{itemdescr}
54445504

54455505
\indexlibrarymember{operator<=>}{optional}%

0 commit comments

Comments
 (0)