68
68
69
69
</ head >
70
70
< body >
71
- < header data-kunai-mdinfo ="{"meta": {"header": ["debugging"], "namespace": ["std"], "id-type": ["function"], "cpp": ["cpp26"]}, "sources": [{"id": "d95de9862b96977a0e6daa49e817963ce867bbec", "source": "#include <print>\n#include <debugging>\n#include <cmath>\n\n// \u306a\u3093\u3089\u304b\u306e\u51e6\u7406\ndouble g(double a, double b) {\n return a / b;\n}\n\ndouble f(double a, double b) {\n double ret = g(a, b);\n if (std::isnan(ret)) {\n // \u6f14\u7b97\u7d50\u679c\u3067NaN\u304c\u767a\u751f\u3057\u305f\u3089\u30d6\u30ec\u30fc\u30af\u3057\u3001\n // \u30c7\u30d0\u30c3\u30ac\u3067\u30d1\u30e9\u30e1\u30fc\u30bf (\u30ed\u30fc\u30ab\u30eb\u5909\u6570) \u306a\u3069\u3092\u78ba\u8a8d\u3059\u308b\n std::breakpoint_if_debugging();\n }\n}\n\nint main() {\n double ret = f(2.0, 0.0);\n std::println(\"{}\", ret);\n}\n"}], "page_id": ["reference", "debugging", "breakpoint_if_debugging"]} ">
71
+ < header data-kunai-mdinfo ="{"meta": {"header": ["debugging"], "namespace": ["std"], "id-type": ["function"], "cpp": ["cpp26"]}, "sources": [{"id": "cdfd92c5191af3d6478f8eb1a7962d801ab47948", "source": "#include <print>\n#include <debugging>\n#include <cmath>\n\n// \u306a\u3093\u3089\u304b\u306e\u51e6\u7406\ndouble g(double a, double b) {\n return a / b;\n}\n\ndouble f(double a, double b) {\n double ret = g(a, b);\n if (std::isnan(ret) || std::isinf(ret)) {\n // \u6f14\u7b97\u7d50\u679c\u3067NaN\u304binf\u304c\u767a\u751f\u3057\u305f\u3089\u30d6\u30ec\u30fc\u30af\u3057\u3001\n // \u30c7\u30d0\u30c3\u30ac\u3067\u30d1\u30e9\u30e1\u30fc\u30bf (\u30ed\u30fc\u30ab\u30eb\u5909\u6570) \u306a\u3069\u3092\u78ba\u8a8d\u3059\u308b\n std::breakpoint_if_debugging();\n }\n return ret;\n}\n\nint main() {\n double ret = f(2.0, 0.0);\n std::println(\"{}\", ret);\n}\n"}], "page_id": ["reference", "debugging", "breakpoint_if_debugging"]} ">
72
72
< nav class ="navbar navbar-default " role ="navigation ">
73
73
< div class ="container-fluid ">
74
74
< div class ="navbar-header ">
188
188
189
189
< p class ="text-right "> < small >
190
190
最終更新日時(UTC):
191
- < span itemprop ="datePublished " content ="2024-09-18T03:36:29 ">
192
- 2024年09月18日 03時36分29秒
191
+ < span itemprop ="datePublished " content ="2024-09-18T04:13:25 ">
192
+ 2024年09月18日 04時13分25秒
193
193
</ span >
194
194
< br />
195
195
< span itemprop ="author " itemscope itemtype ="http://schema.org/Person ">
@@ -235,7 +235,7 @@ <h2>備考</h2>
235
235
< li > 実装としては、生成されるコードがプラットフォームに対して可能な限り最小になるように最適化することが期待される。例として、x86ターゲット環境ではINT3命令をひとつだけ生成することが期待される</ li >
236
236
</ ul >
237
237
< h2 > 例</ h2 >
238
- < p > < div class ="yata " id ="d95de9862b96977a0e6daa49e817963ce867bbec "> < div class ="codehilite "> < pre > < span > </ span > < code > < span class ="cp "> #include</ span > < span class ="cpf "> < a href ="../print.html "> <print></ a > </ span > < span class ="cp "> </ span >
238
+ < p > < div class ="yata " id ="cdfd92c5191af3d6478f8eb1a7962d801ab47948 "> < div class ="codehilite "> < pre > < span > </ span > < code > < span class ="cp "> #include</ span > < span class ="cpf "> < a href ="../print.html "> <print></ a > </ span > < span class ="cp "> </ span >
239
239
< span class ="cp "> #include</ span > < span class ="cpf "> < a href ="../debugging.html "> <debugging></ a > </ span > < span class ="cp "> </ span >
240
240
< span class ="cp "> #include</ span > < span class ="cpf "> < a href ="../cmath.html "> <cmath></ a > </ span > < span class ="cp "> </ span >
241
241
@@ -246,11 +246,12 @@ <h2>例</h2>
246
246
247
247
< span class ="kt "> double</ span > < span class ="nf "> f</ span > < span class ="p "> (</ span > < span class ="kt "> double</ span > < span class ="n "> a</ span > < span class ="p "> ,</ span > < span class ="kt "> double</ span > < span class ="n "> b</ span > < span class ="p "> )</ span > < span class ="p "> {</ span >
248
248
< span class ="kt "> double</ span > < span class ="n "> ret</ span > < span class ="o "> =</ span > < span class ="n "> g</ span > < span class ="p "> (</ span > < span class ="n "> a</ span > < span class ="p "> ,</ span > < span class ="n "> b</ span > < span class ="p "> );</ span >
249
- < span class ="k "> if</ span > < span class ="p "> (</ span > < span class ="n "> < a href ="../cmath/isnan.html "> std::isnan</ a > </ span > < span class ="p "> (</ span > < span class ="n "> ret</ span > < span class ="p "> ))</ span > < span class ="p "> {</ span >
250
- < span class ="c1 "> // 演算結果でNaNが発生したらブレークし 、</ span >
249
+ < span class ="k "> if</ span > < span class ="p "> (</ span > < span class ="n "> < a href ="../cmath/isnan.html "> std::isnan</ a > </ span > < span class ="p "> (</ span > < span class ="n "> ret</ span > < span class ="p "> )</ span > < span class =" o " > || </ span > < span class =" n " > < a href =" ../cmath/isinf.html " > std::isinf </ a > </ span > < span class =" p " > ( </ span > < span class =" n " > ret </ span > < span class =" p " > ) )</ span > < span class ="p "> {</ span >
250
+ < span class ="c1 "> // 演算結果でNaNかinfが発生したらブレークし 、</ span >
251
251
< span class ="c1 "> // デバッガでパラメータ (ローカル変数) などを確認する</ span >
252
252
< span class ="n "> < span style ="color:#ff0000 "> std::breakpoint_if_debugging</ span > </ span > < span class ="p "> ();</ span >
253
253
< span class ="p "> }</ span >
254
+ < span class ="k "> return</ span > < span class ="n "> ret</ span > < span class ="p "> ;</ span >
254
255
< span class ="p "> }</ span >
255
256
256
257
< span class ="kt "> int</ span > < span class ="nf "> main</ span > < span class ="p "> ()</ span > < span class ="p "> {</ span >
@@ -259,8 +260,9 @@ <h2>例</h2>
259
260
< span class ="p "> }</ span >
260
261
</ code > </ pre > </ div >
261
262
</ div > </ p >
262
- < h3 > 出力</ h3 >
263
- < p > < pre > < code > </ code > </ pre > </ p >
263
+ < h3 > 出力例</ h3 >
264
+ < p > < pre > < code > inf
265
+ </ code > </ pre > </ p >
264
266
< h2 > バージョン</ h2 >
265
267
< h3 > 言語</ h3 >
266
268
< ul >
0 commit comments