Skip to content

Commit 2d7e351

Browse files
committed
LWG4370 Comparison of optional<T> to T may be ill-formed
1 parent b719979 commit 2d7e351

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
@@ -5256,7 +5256,12 @@
52565256

52575257
\pnum
52585258
\effects
5259-
Equivalent to: \tcode{return x.has_value() ? *x == v : false;}
5259+
Equivalent to:
5260+
\begin{codeblock}
5261+
if (x.has_value())
5262+
return *x == v;
5263+
return false;
5264+
\end{codeblock}
52605265
\end{itemdescr}
52615266

52625267
\indexlibrarymember{operator==}{optional}%
@@ -5273,7 +5278,12 @@
52735278

52745279
\pnum
52755280
\effects
5276-
Equivalent to: \tcode{return x.has_value() ? v == *x : false;}
5281+
Equivalent to:
5282+
\begin{codeblock}
5283+
if (x.has_value())
5284+
return *x == v;
5285+
return false;
5286+
\end{codeblock}
52775287
\end{itemdescr}
52785288

52795289
\indexlibrarymember{operator"!=}{optional}%
@@ -5290,7 +5300,12 @@
52905300

52915301
\pnum
52925302
\effects
5293-
Equivalent to: \tcode{return x.has_value() ? *x != v : true;}
5303+
Equivalent to:
5304+
\begin{codeblock}
5305+
if (x.has_value())
5306+
return *x != v;
5307+
return true;
5308+
\end{codeblock}
52945309
\end{itemdescr}
52955310

52965311
\indexlibrarymember{operator"!=}{optional}%
@@ -5307,7 +5322,12 @@
53075322

53085323
\pnum
53095324
\effects
5310-
Equivalent to: \tcode{return x.has_value() ? v != *x : true;}
5325+
Equivalent to:
5326+
\begin{codeblock}
5327+
if (x.has_value())
5328+
return *x != v;
5329+
return true;
5330+
\end{codeblock}
53115331
\end{itemdescr}
53125332

53135333
\indexlibrarymember{operator<}{optional}%
@@ -5324,7 +5344,12 @@
53245344

53255345
\pnum
53265346
\effects
5327-
Equivalent to: \tcode{return x.has_value() ? *x < v : true;}
5347+
Equivalent to:
5348+
\begin{codeblock}
5349+
if (x.has_value())
5350+
return *x < v;
5351+
return true;
5352+
\end{codeblock}
53285353
\end{itemdescr}
53295354

53305355
\indexlibrarymember{operator<}{optional}%
@@ -5341,7 +5366,12 @@
53415366

53425367
\pnum
53435368
\effects
5344-
Equivalent to: \tcode{return x.has_value() ? v < *x : false;}
5369+
Equivalent to:
5370+
\begin{codeblock}
5371+
if (x.has_value())
5372+
return v == *x;
5373+
return false;
5374+
\end{codeblock}
53455375
\end{itemdescr}
53465376

53475377
\indexlibrarymember{operator>}{optional}%
@@ -5358,7 +5388,12 @@
53585388

53595389
\pnum
53605390
\effects
5361-
Equivalent to: \tcode{return x.has_value() ? *x > v : false;}
5391+
Equivalent to:
5392+
\begin{codeblock}
5393+
if (x.has_value())
5394+
return *x > v;
5395+
return false;
5396+
\end{codeblock}
53625397
\end{itemdescr}
53635398

53645399
\indexlibrarymember{operator>}{optional}%
@@ -5375,7 +5410,12 @@
53755410

53765411
\pnum
53775412
\effects
5378-
Equivalent to: \tcode{return x.has_value() ? v > *x : true;}
5413+
Equivalent to:
5414+
\begin{codeblock}
5415+
if (x.has_value())
5416+
return v > *x;
5417+
return true;
5418+
\end{codeblock}
53795419
\end{itemdescr}
53805420

53815421
\indexlibrarymember{operator<=}{optional}%
@@ -5392,7 +5432,12 @@
53925432

53935433
\pnum
53945434
\effects
5395-
Equivalent to: \tcode{return x.has_value() ? *x <= v : true;}
5435+
Equivalent to:
5436+
\begin{codeblock}
5437+
if (x.has_value())
5438+
return *x <= v;
5439+
return true;
5440+
\end{codeblock}
53965441
\end{itemdescr}
53975442

53985443
\indexlibrarymember{operator<=}{optional}%
@@ -5409,7 +5454,12 @@
54095454

54105455
\pnum
54115456
\effects
5412-
Equivalent to: \tcode{return x.has_value() ? v <= *x : false;}
5457+
Equivalent to:
5458+
\begin{codeblock}
5459+
if (x.has_value())
5460+
return v <= *x;
5461+
return false;
5462+
\end{codeblock}
54135463
\end{itemdescr}
54145464

54155465
\indexlibrarymember{operator>=}{optional}%
@@ -5426,7 +5476,12 @@
54265476

54275477
\pnum
54285478
\effects
5429-
Equivalent to: \tcode{return x.has_value() ? *x >= v : false;}
5479+
Equivalent to:
5480+
\begin{codeblock}
5481+
if (x.has_value())
5482+
return *x >= v;
5483+
return false;
5484+
\end{codeblock}
54305485
\end{itemdescr}
54315486

54325487
\indexlibrarymember{operator>=}{optional}%
@@ -5443,7 +5498,12 @@
54435498

54445499
\pnum
54455500
\effects
5446-
Equivalent to: \tcode{return x.has_value() ? v >= *x : true;}
5501+
Equivalent to:
5502+
\begin{codeblock}
5503+
if (x.has_value())
5504+
return v >= *x;
5505+
return true;
5506+
\end{codeblock}
54475507
\end{itemdescr}
54485508

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

0 commit comments

Comments
 (0)