[{"data":1,"prerenderedAt":1664},["ShallowReactive",2],{"global-navigation":3,"page-\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Finput-output-fio\u002Ffio50-cpp":28,"surround-\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Finput-output-fio\u002Ffio50-cpp":958,"sidebar-sei-cert-cpp-coding-standard":966},[4,8],{"title":5,"path":6,"_path":6,"fromAppConfig":7},"Home","\u002F",true,{"title":9,"path":10,"children":11,"_path":27,"fromAppConfig":7},"Coding Standards","\u002Fcoding-standards\u002F",[12,15,18,21,24],{"title":13,"path":14},"Android Coding Standard","\u002Fandroid-secure-coding-standard\u002F",{"title":16,"path":17},"C Coding Standard","\u002Fsei-cert-c-coding-standard\u002F",{"title":19,"path":20},"C++ Coding Standard","\u002Fsei-cert-cpp-coding-standard\u002F",{"title":22,"path":23},"Java Coding Standard","\u002Fsei-cert-oracle-coding-standard-for-java\u002F",{"title":25,"path":26},"Perl Coding Standard","\u002Fsei-cert-perl-coding-standard\u002F","\u002Fcoding-standards",{"id":29,"title":30,"body":31,"description":942,"extension":943,"meta":944,"navigation":7,"path":954,"seo":955,"stem":956,"__hash__":957},"content\u002F5.sei-cert-cpp-coding-standard\u002F3.rules\u002F08.input-output-fio\u002F2.fio50-cpp.md","FIO50-CPP. Do not alternately input and output from a file stream without an intervening positioning call",{"type":32,"value":33,"toc":932},"minimark",[34,38,48,63,74,95,103,119,130,164,169,176,357,361,369,520,524,529,596,601,805,809,823,827,840,865,869,905,908,928],[35,36,30],"h1",{"id":37},"fio50-cpp-do-not-alternately-input-and-output-from-a-file-stream-without-an-intervening-positioning-call",[39,40,41,42,47],"p",{},"The C++ Standard, [filebuf], paragraph 2 [ ",[43,44,46],"a",{"href":45},"\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Faa-bibliography#AA.Bibliography-ISO\u002FIEC14882-2014","ISO\u002FIEC 14882-2014"," ], states the following:",[49,50,51],"blockquote",{},[39,52,53,54,58,59,62],{},"The restrictions on reading and writing a sequence controlled by an object of class ",[55,56,57],"code",{},"   basic_filebuf\u003CcharT, traits>  "," are the same as for reading and writing with the Standard C library ",[55,60,61],{},"FILE"," s.",[39,64,65,66,70,71,73],{},"The C Standard, subclause 7.19.5.3, paragraph 6 [ ",[43,67,69],{"href":68},"\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Faa-bibliography#AA.Bibliography-ISO-IEC9899-1999","ISO\u002FIEC 9899:1999"," ], places the following restrictions on ",[55,72,61],{}," objects opened for both reading and writing:",[49,75,76],{},[39,77,78,79,82,83,86,87,90,91,94],{},"When a file is opened with update mode . . ., both input and output may be performed on the associated stream. However, output shall not be directly followed by input without an intervening call to the ",[55,80,81],{},"fflush"," function or to a file positioning function ( ",[55,84,85],{},"fseek"," , ",[55,88,89],{},"fsetpos"," , or ",[55,92,93],{},"rewind"," ), and input shall not be directly followed by output without an intervening call to a file positioning function, unless the input operation encounters end-of-file.",[39,96,97,98,102],{},"Consequently, the following scenarios can result in ",[43,99,101],{"href":100},"\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fbb-definitions#BB.Definitions-undefinedbehavior","undefined behavior"," :",[104,105,106,114],"ul",{},[107,108,109,110,113],"li",{},"Receiving input from a stream directly following an output to that stream without an intervening call to ",[55,111,112],{},"std::basic_filebuf\u003CT>::seekoff()"," if the file is not at end-of-file",[107,115,116,117,113],{},"Outputting to a stream after receiving input from that stream without a call to ",[55,118,112],{},[39,120,121,122,125,126,129],{},"No other ",[55,123,124],{},"std::basic_filebuf\u003CT>"," function guarantees behavior as if a call were made to a standard C library file-positioning function, or ",[55,127,128],{},"std::fflush()"," .",[39,131,132,133,136,137,140,141,143,144,147,148,151,152,155,156,159,160,163],{},"Calling ",[55,134,135],{},"std::basic_ostream\u003CT>::seekp()"," or ",[55,138,139],{},"std::basic_istream\u003CT>::seekg()"," eventually results in a call to ",[55,142,112],{}," for file stream positioning. Given that ",[55,145,146],{},"std::basic_iostream\u003CT>"," inherits from both ",[55,149,150],{},"std::basic_ostream\u003CT>"," and ",[55,153,154],{},"std::basic_istream\u003CT>"," , and ",[55,157,158],{},"std::fstream"," inherits from ",[55,161,162],{},"std::basic_iostream"," , either function is acceptable to call to ensure the file buffer is in a valid state before the subsequent I\u002FO operation.",[165,166,168],"h2",{"id":167},"noncompliant-code-example","Noncompliant Code Example",[39,170,171,172,129],{},"This noncompliant code example appends data to the end of a file and then reads from the same file. However, because there is no intervening positioning call between the formatted output and input calls, the behavior is ",[43,173,175],{"href":174},"\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fbb-definitions#BB.Definitions-undefinedbehavior","undefined",[177,178,180],"code-block",{"quality":179},"bad",[181,182,187],"pre",{"className":183,"code":184,"language":185,"meta":186,"style":186},"language-cpp shiki shiki-themes github-light github-dark monokai","#include \u003Cfstream>\n#include \u003Cstring>\n\nvoid f(const std::string &fileName) {\n  std::fstream file(fileName);\n  if (!file.is_open()) {\n    \u002F\u002F Handle error\n    return;\n  }\n  \n  file \u003C\u003C \"Output some data\";\n  std::string str;\n  file >> str;\n}\n","cpp","",[55,188,189,202,210,216,254,269,290,297,306,312,318,332,340,351],{"__ignoreMap":186},[190,191,194,198],"span",{"class":192,"line":193},"line",1,[190,195,197],{"class":196},"sC2Qs","#include",[190,199,201],{"class":200},"sstjo"," \u003Cfstream>\n",[190,203,205,207],{"class":192,"line":204},2,[190,206,197],{"class":196},[190,208,209],{"class":200}," \u003Cstring>\n",[190,211,213],{"class":192,"line":212},3,[190,214,215],{"emptyLinePlaceholder":7},"\n",[190,217,219,223,227,231,234,238,241,244,247,251],{"class":192,"line":218},4,[190,220,222],{"class":221},"sq6CD","void",[190,224,226],{"class":225},"srTi1"," f",[190,228,230],{"class":229},"sMOD_","(",[190,232,233],{"class":196},"const",[190,235,237],{"class":236},"sz2Vg"," std",[190,239,240],{"class":229},"::",[190,242,243],{"class":236},"string",[190,245,246],{"class":196}," &",[190,248,250],{"class":249},"sTHNf","fileName",[190,252,253],{"class":229},") {\n",[190,255,257,260,263,266],{"class":192,"line":256},5,[190,258,259],{"class":236},"  std",[190,261,262],{"class":229},"::fstream ",[190,264,265],{"class":225},"file",[190,267,268],{"class":229},"(fileName);\n",[190,270,272,275,278,281,284,287],{"class":192,"line":271},6,[190,273,274],{"class":196},"  if",[190,276,277],{"class":229}," (",[190,279,280],{"class":196},"!",[190,282,283],{"class":229},"file.",[190,285,286],{"class":225},"is_open",[190,288,289],{"class":229},"()) {\n",[190,291,293],{"class":192,"line":292},7,[190,294,296],{"class":295},"s8-w5","    \u002F\u002F Handle error\n",[190,298,300,303],{"class":192,"line":299},8,[190,301,302],{"class":196},"    return",[190,304,305],{"class":229},";\n",[190,307,309],{"class":192,"line":308},9,[190,310,311],{"class":229},"  }\n",[190,313,315],{"class":192,"line":314},10,[190,316,317],{"class":229},"  \n",[190,319,321,324,327,330],{"class":192,"line":320},11,[190,322,323],{"class":229},"  file ",[190,325,326],{"class":196},"\u003C\u003C",[190,328,329],{"class":200}," \"Output some data\"",[190,331,305],{"class":229},[190,333,335,337],{"class":192,"line":334},12,[190,336,259],{"class":236},[190,338,339],{"class":229},"::string str;\n",[190,341,343,345,348],{"class":192,"line":342},13,[190,344,323],{"class":229},[190,346,347],{"class":196},">>",[190,349,350],{"class":229}," str;\n",[190,352,354],{"class":192,"line":353},14,[190,355,356],{"class":229},"}\n",[165,358,360],{"id":359},"compliant-solution","Compliant Solution",[39,362,363,364,366,367,129],{},"In this compliant solution, the ",[55,365,139],{}," function is called between the output and input, eliminating the ",[43,368,101],{"href":174},[177,370,372],{"quality":371},"good",[181,373,375],{"className":183,"code":374,"language":185,"meta":186,"style":186},"#include \u003Cfstream>\n#include \u003Cstring>\n\nvoid f(const std::string &fileName) {\n  std::fstream file(fileName);\n  if (!file.is_open()) {\n    \u002F\u002F Handle error\n    return;\n  }\n  \n  file \u003C\u003C \"Output some data\";\n \n  std::string str;\n  file.seekg(0, std::ios::beg);\n  file >> str;\n}\n",[55,376,377,383,389,393,415,425,439,443,449,453,457,467,472,478,506,515],{"__ignoreMap":186},[190,378,379,381],{"class":192,"line":193},[190,380,197],{"class":196},[190,382,201],{"class":200},[190,384,385,387],{"class":192,"line":204},[190,386,197],{"class":196},[190,388,209],{"class":200},[190,390,391],{"class":192,"line":212},[190,392,215],{"emptyLinePlaceholder":7},[190,394,395,397,399,401,403,405,407,409,411,413],{"class":192,"line":218},[190,396,222],{"class":221},[190,398,226],{"class":225},[190,400,230],{"class":229},[190,402,233],{"class":196},[190,404,237],{"class":236},[190,406,240],{"class":229},[190,408,243],{"class":236},[190,410,246],{"class":196},[190,412,250],{"class":249},[190,414,253],{"class":229},[190,416,417,419,421,423],{"class":192,"line":256},[190,418,259],{"class":236},[190,420,262],{"class":229},[190,422,265],{"class":225},[190,424,268],{"class":229},[190,426,427,429,431,433,435,437],{"class":192,"line":271},[190,428,274],{"class":196},[190,430,277],{"class":229},[190,432,280],{"class":196},[190,434,283],{"class":229},[190,436,286],{"class":225},[190,438,289],{"class":229},[190,440,441],{"class":192,"line":292},[190,442,296],{"class":295},[190,444,445,447],{"class":192,"line":299},[190,446,302],{"class":196},[190,448,305],{"class":229},[190,450,451],{"class":192,"line":308},[190,452,311],{"class":229},[190,454,455],{"class":192,"line":314},[190,456,317],{"class":229},[190,458,459,461,463,465],{"class":192,"line":320},[190,460,323],{"class":229},[190,462,326],{"class":196},[190,464,329],{"class":200},[190,466,305],{"class":229},[190,468,469],{"class":192,"line":334},[190,470,471],{"class":229}," \n",[190,473,474,476],{"class":192,"line":342},[190,475,259],{"class":236},[190,477,339],{"class":229},[190,479,480,483,486,488,492,495,498,500,503],{"class":192,"line":353},[190,481,482],{"class":229},"  file.",[190,484,485],{"class":225},"seekg",[190,487,230],{"class":229},[190,489,491],{"class":490},"s7F3e","0",[190,493,494],{"class":229},", ",[190,496,497],{"class":236},"std",[190,499,240],{"class":229},[190,501,502],{"class":236},"ios",[190,504,505],{"class":229},"::beg);\n",[190,507,509,511,513],{"class":192,"line":508},15,[190,510,323],{"class":229},[190,512,347],{"class":196},[190,514,350],{"class":229},[190,516,518],{"class":192,"line":517},16,[190,519,356],{"class":229},[165,521,523],{"id":522},"risk-assessment","Risk Assessment",[39,525,526,527,129],{},"Alternately inputting and outputting from a stream without an intervening flush or positioning call is ",[43,528,101],{"href":100},[530,531,532,533,532,563],"table",{},"\n  ",[534,535,536,537,532],"thead",{},"\n    ",[538,539,540,541,540,545,540,548,540,551,540,554,540,557,540,560,536],"tr",{},"\n      ",[542,543,544],"th",{},"Rule",[542,546,547],{},"Severity",[542,549,550],{},"Likelihood",[542,552,553],{},"Detectable",[542,555,556],{},"Repairable",[542,558,559],{},"Priority",[542,561,562],{},"Level",[564,565,536,566,532],"tbody",{},[538,567,540,568,540,572,540,575,540,578,540,581,540,584,540,591,536],{},[569,570,571],"td",{},"FIO50-CPP",[569,573,574],{},"Low",[569,576,577],{},"Likely",[569,579,580],{},"Yes",[569,582,583],{},"No",[569,585,587],{"style":586},"color: #f1c40f;",[588,589,590],"b",{},"P6",[569,592,593],{"style":586},[588,594,595],{},"L2",[597,598,600],"h3",{"id":599},"automated-detection","Automated Detection",[530,602,605],{"className":603},[604],"wrapped",[564,606,607,631,662,698,726,754,780],{},[538,608,611,616,621,626],{"className":609},[610],"header",[542,612,613],{},[39,614,615],{},"Tool",[542,617,618],{},[39,619,620],{},"Version",[542,622,623],{},[39,624,625],{},"Checker",[542,627,628],{},[39,629,630],{},"Description",[538,632,635,641,651,657],{"className":633},[634],"odd",[569,636,637],{},[43,638,640],{"href":639},"\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Faxivion-bauhaus-suite","Axivion Bauhaus Suite",[569,642,643],{},[644,645,648],"div",{"className":646},[647],"content-wrapper",[39,649,650],{},"7.2.0",[569,652,653],{},[654,655,656],"strong",{},"CertC++-FIO50",[569,658,659],{},[660,661],"br",{},[538,663,666,672,678,690],{"className":664},[665],"even",[569,667,668],{},[43,669,671],{"href":670},"\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fcodesonar","CodeSonar",[569,673,674],{},[644,675,677],{"className":676},[647],"9.1p0",[569,679,680,685],{},[39,681,682],{},[654,683,684],{},"IO.IOWOP",[39,686,687],{},[654,688,689],{},"IO.OIWOP",[569,691,692,695],{},[39,693,694],{},"Input After Output Without Positioning",[39,696,697],{},"Output After Input Without Positioning",[538,699,701,707,715,722],{"className":700},[634],[569,702,703],{},[43,704,706],{"href":705},"\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fhelix-qac","Helix QAC",[569,708,709],{},[644,710,712],{"className":711},[647],[39,713,714],{},"2025.2",[569,716,717],{},[39,718,719],{},[654,720,721],{},"DF4711, DF4712, DF4713",[569,723,724],{},[660,725],{},[538,727,729,737,744,751],{"className":728},[665],[569,730,731],{},[39,732,733],{},[43,734,736],{"href":735},"\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fparasoft","Parasoft C\u002FC++test",[569,738,739],{},[644,740,742],{"className":741},[647],[39,743,714],{},[569,745,746],{},[39,747,748],{},[654,749,750],{},"CERT_CPP-FIO50-a",[569,752,753],{},"Do not alternately input and output from a stream without an intervening flush or positioning call",[538,755,757,763,771,777],{"className":756},[634],[569,758,759],{},[43,760,762],{"href":761},"\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fpolyspace-bug-finder","Polyspace Bug Finder",[569,764,765],{},[644,766,768],{"className":767},[647],[39,769,770],{},"R2025b",[569,772,773],{},[43,774,776],{"href":775},"https:\u002F\u002Fwww.mathworks.com\u002Fhelp\u002Fbugfinder\u002Fref\u002Fcertcfio50cpp.html","CERT C++: FIO50-CPP",[569,778,779],{},"Checks for alternating input and output from a stream without flush or positioning call (rule fully covered)",[538,781,783,789,797,802],{"className":782},[665],[569,784,785],{},[43,786,788],{"href":787},"\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fsecurity-reviewer-static-reviewer","Security Reviewer - Static Reviewer",[569,790,791],{},[644,792,794],{"className":793},[647],[39,795,796],{},"6.02",[569,798,799],{},[654,800,801],{},"C17",[569,803,804],{},"Fully implemented",[597,806,808],{"id":807},"related-vulnerabilities","Related Vulnerabilities",[39,810,811,812,816,817,129],{},"Search for ",[43,813,815],{"href":814},"\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fbb-definitions#BB.Definitions-vulnerabilit","vulnerabilities"," resulting from the violation of this rule on the ",[43,818,822],{"href":819,"rel":820},"https:\u002F\u002Fwww.kb.cert.org\u002Fvulnotes\u002Fbymetric?searchview&query=FIELD+KEYWORDS+contains+FIO39-CPP",[821],"nofollow","CERT website",[165,824,826],{"id":825},"related-guidelines","Related Guidelines",[39,828,829,833,834],{},[830,831,832],"em",{},"This rule supplements"," ",[830,835,836,129],{},[43,837,839],{"href":838},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Finput-output-fio\u002Ffio39-c","FIO39-C. Do not alternately input and output from a stream without an intervening flush or positioning call",[530,841,843,852],{"className":842},[604],[844,845,846,850],"colgroup",{},[847,848],"col",{"style":849},"width: 50%",[847,851],{"style":849},[564,853,854],{},[538,855,857,861],{"className":856},[634],[569,858,859],{},[660,860],{},[569,862,863],{},[660,864],{},[165,866,868],{"id":867},"bibliography","Bibliography",[530,870,871,879],{},[534,872,873],{},[538,874,875,877],{},[542,876],{},[542,878],{},[564,880,881,896],{},[538,882,883,889],{},[569,884,885,886,888],{},"[ ",[43,887,69],{"href":68}," ]",[569,890,891,892,895],{},"Subclause 7.19.5.3, \"The ",[55,893,894],{},"fopen"," Function\"",[538,897,898,902],{},[569,899,885,900,888],{},[43,901,46],{"href":45},[569,903,904],{},"Clause 27, \"Input\u002FOutput Library\"",[906,907],"hr",{},[39,909,910,833,917,833,922],{},[43,911,913],{"href":912},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Finput-output-fio\u002F",[914,915],"img",{"src":916},"\u002Fattachments\u002F88046682\u002F88480621.png",[43,918,919],{"href":912},[914,920],{"src":921},"\u002Fattachments\u002F88046682\u002F88475556.png",[43,923,925],{"href":924},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Finput-output-fio\u002Ffio51-cpp",[914,926],{"src":927},"\u002Fattachments\u002F88046682\u002F88475555.png",[929,930,931],"style",{},"html pre.shiki code .sC2Qs, html code.shiki .sC2Qs{--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-sepia:#F92672}html pre.shiki code .sstjo, html code.shiki .sstjo{--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-sepia:#E6DB74}html pre.shiki code .sq6CD, html code.shiki .sq6CD{--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit;--shiki-sepia:#66D9EF;--shiki-sepia-font-style:italic}html pre.shiki code .srTi1, html code.shiki .srTi1{--shiki-default:#6F42C1;--shiki-dark:#B392F0;--shiki-sepia:#A6E22E}html pre.shiki code .sMOD_, html code.shiki .sMOD_{--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-sepia:#F8F8F2}html pre.shiki code .sz2Vg, html code.shiki .sz2Vg{--shiki-default:#6F42C1;--shiki-default-text-decoration:inherit;--shiki-dark:#B392F0;--shiki-dark-text-decoration:inherit;--shiki-sepia:#A6E22E;--shiki-sepia-text-decoration:underline}html pre.shiki code .sTHNf, html code.shiki .sTHNf{--shiki-default:#E36209;--shiki-default-font-style:inherit;--shiki-dark:#FFAB70;--shiki-dark-font-style:inherit;--shiki-sepia:#FD971F;--shiki-sepia-font-style:italic}html pre.shiki code .s8-w5, html code.shiki .s8-w5{--shiki-default:#6A737D;--shiki-dark:#6A737D;--shiki-sepia:#88846F}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}html.sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}html pre.shiki code .s7F3e, html code.shiki .s7F3e{--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-sepia:#AE81FF}",{"title":186,"searchDepth":204,"depth":204,"links":933},[934,935,936,940,941],{"id":167,"depth":204,"text":168},{"id":359,"depth":204,"text":360},{"id":522,"depth":204,"text":523,"children":937},[938,939],{"id":599,"depth":212,"text":600},{"id":807,"depth":212,"text":808},{"id":825,"depth":204,"text":826},{"id":867,"depth":204,"text":868},"The C++ Standard, [filebuf], paragraph 2 [ ISO\u002FIEC 14882-2014 ], states the following:","md",{"tags":945},[946,947,948,949,950,951,952,953],"review","fio","review-dms","rule","review-ajb","nptc-wpa","no-autodetect","nptc","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Finput-output-fio\u002Ffio50-cpp",{"title":30,"description":942},"5.sei-cert-cpp-coding-standard\u002F3.rules\u002F08.input-output-fio\u002F2.fio50-cpp","8wf2WlFo0bv8U8QWsw5HToT5p4YbeXak1Vb3VoN8EZ0",[959,963],{"title":960,"path":961,"stem":962,"children":-1},"Input Output (FIO)","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Finput-output-fio","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F08.input-output-fio\u002F1.index",{"title":964,"path":924,"stem":965,"children":-1},"FIO51-CPP. Close files when they are no longer needed","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F08.input-output-fio\u002F3.fio51-cpp",[967],{"title":968,"path":969,"stem":970,"children":971},"SEI CERT C++ Coding Standard","\u002Fsei-cert-cpp-coding-standard","5.sei-cert-cpp-coding-standard\u002F1.index",[972,973,1040,1435,1650,1660],{"title":968,"path":969,"stem":970},{"title":974,"path":975,"stem":976,"children":977},"Front Matter","\u002Fsei-cert-cpp-coding-standard\u002Ffront-matter","5.sei-cert-cpp-coding-standard\u002F2.front-matter\u002F1.index",[978,979],{"title":974,"path":975,"stem":976},{"title":980,"path":981,"stem":982,"children":983},"Introduction","\u002Fsei-cert-cpp-coding-standard\u002Ffront-matter\u002Fintroduction","5.sei-cert-cpp-coding-standard\u002F2.front-matter\u002F2.introduction\u002F01.index",[984,985,989,993,997,1001,1005,1009,1013,1017,1021,1025,1029,1033,1037],{"title":980,"path":981,"stem":982},{"title":986,"path":987,"stem":988},"Scope","\u002Fsei-cert-cpp-coding-standard\u002Ffront-matter\u002Fintroduction\u002Fscope","5.sei-cert-cpp-coding-standard\u002F2.front-matter\u002F2.introduction\u002F02.scope",{"title":990,"path":991,"stem":992},"Audience","\u002Fsei-cert-cpp-coding-standard\u002Ffront-matter\u002Fintroduction\u002Faudience","5.sei-cert-cpp-coding-standard\u002F2.front-matter\u002F2.introduction\u002F03.audience",{"title":994,"path":995,"stem":996},"Usage","\u002Fsei-cert-cpp-coding-standard\u002Ffront-matter\u002Fintroduction\u002Fusage","5.sei-cert-cpp-coding-standard\u002F2.front-matter\u002F2.introduction\u002F04.usage",{"title":998,"path":999,"stem":1000},"How this Coding Standard Is Organized","\u002Fsei-cert-cpp-coding-standard\u002Ffront-matter\u002Fintroduction\u002Fhow-this-coding-standard-is-organized","5.sei-cert-cpp-coding-standard\u002F2.front-matter\u002F2.introduction\u002F05.how-this-coding-standard-is-organized",{"title":1002,"path":1003,"stem":1004},"Relation to the CERT C Coding Standard","\u002Fsei-cert-cpp-coding-standard\u002Ffront-matter\u002Fintroduction\u002Frelation-to-the-cert-c-coding-standard","5.sei-cert-cpp-coding-standard\u002F2.front-matter\u002F2.introduction\u002F06.relation-to-the-cert-c-coding-standard",{"title":1006,"path":1007,"stem":1008},"Rules Versus Recommendations","\u002Fsei-cert-cpp-coding-standard\u002Ffront-matter\u002Fintroduction\u002Frules-versus-recommendations","5.sei-cert-cpp-coding-standard\u002F2.front-matter\u002F2.introduction\u002F07.rules-versus-recommendations",{"title":1010,"path":1011,"stem":1012},"Tool Selection and Validation","\u002Fsei-cert-cpp-coding-standard\u002Ffront-matter\u002Fintroduction\u002Ftool-selection-and-validation","5.sei-cert-cpp-coding-standard\u002F2.front-matter\u002F2.introduction\u002F08.tool-selection-and-validation",{"title":1014,"path":1015,"stem":1016},"Conformance Testing","\u002Fsei-cert-cpp-coding-standard\u002Ffront-matter\u002Fintroduction\u002Fconformance-testing","5.sei-cert-cpp-coding-standard\u002F2.front-matter\u002F2.introduction\u002F09.conformance-testing",{"title":1018,"path":1019,"stem":1020},"Development Process","\u002Fsei-cert-cpp-coding-standard\u002Ffront-matter\u002Fintroduction\u002Fdevelopment-process","5.sei-cert-cpp-coding-standard\u002F2.front-matter\u002F2.introduction\u002F10.development-process",{"title":1022,"path":1023,"stem":1024},"System Qualities","\u002Fsei-cert-cpp-coding-standard\u002Ffront-matter\u002Fintroduction\u002Fsystem-qualities","5.sei-cert-cpp-coding-standard\u002F2.front-matter\u002F2.introduction\u002F11.system-qualities",{"title":1026,"path":1027,"stem":1028},"Automatically Generated Code","\u002Fsei-cert-cpp-coding-standard\u002Ffront-matter\u002Fintroduction\u002Fautomatically-generated-code","5.sei-cert-cpp-coding-standard\u002F2.front-matter\u002F2.introduction\u002F12.automatically-generated-code",{"title":1030,"path":1031,"stem":1032},"Government Regulations","\u002Fsei-cert-cpp-coding-standard\u002Ffront-matter\u002Fintroduction\u002Fgovernment-regulations","5.sei-cert-cpp-coding-standard\u002F2.front-matter\u002F2.introduction\u002F13.government-regulations",{"title":1034,"path":1035,"stem":1036},"Acknowledgments","\u002Fsei-cert-cpp-coding-standard\u002Ffront-matter\u002Fintroduction\u002Facknowledgments","5.sei-cert-cpp-coding-standard\u002F2.front-matter\u002F2.introduction\u002F14.acknowledgments",{"title":600,"path":1038,"stem":1039},"\u002Fsei-cert-cpp-coding-standard\u002Ffront-matter\u002Fintroduction\u002Fautomated-detection","5.sei-cert-cpp-coding-standard\u002F2.front-matter\u002F2.introduction\u002F15.automated-detection",{"title":1041,"path":1042,"stem":1043,"children":1044},"Rules","\u002Fsei-cert-cpp-coding-standard\u002Frules","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F01.index",[1045,1046,1068,1102,1144,1194,1252,1314,1319,1329,1367,1393],{"title":1041,"path":1042,"stem":1043},{"title":1047,"path":1048,"stem":1049,"children":1050},"Characters and Strings (STR)","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fcharacters-and-strings-str","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F02.characters-and-strings-str\u002F1.index",[1051,1052,1056,1060,1064],{"title":1047,"path":1048,"stem":1049},{"title":1053,"path":1054,"stem":1055},"STR50-CPP. Guarantee that storage for strings has sufficient space for character data and the null terminator","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fcharacters-and-strings-str\u002Fstr50-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F02.characters-and-strings-str\u002F2.str50-cpp",{"title":1057,"path":1058,"stem":1059},"STR52-CPP. Use valid references, pointers, and iterators to reference elements of a basic_string","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fcharacters-and-strings-str\u002Fstr52-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F02.characters-and-strings-str\u002F3.str52-cpp",{"title":1061,"path":1062,"stem":1063},"STR53-CPP. Range check element access","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fcharacters-and-strings-str\u002Fstr53-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F02.characters-and-strings-str\u002F4.str53-cpp",{"title":1065,"path":1066,"stem":1067},"string from a null pointer","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fcharacters-and-strings-str\u002Fstring-from-a-null-pointer","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F02.characters-and-strings-str\u002F5.string-from-a-null-pointer",{"title":1069,"path":1070,"stem":1071,"children":1072},"Concurrency (CON)","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fconcurrency-con","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F03.concurrency-con\u002F1.index",[1073,1074,1078,1082,1086,1090,1094,1098],{"title":1069,"path":1070,"stem":1071},{"title":1075,"path":1076,"stem":1077},"CON50-CPP. Do not destroy a mutex while it is locked","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fconcurrency-con\u002Fcon50-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F03.concurrency-con\u002F2.con50-cpp",{"title":1079,"path":1080,"stem":1081},"CON51-CPP. Ensure actively held locks are released on exceptional conditions","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fconcurrency-con\u002Fcon51-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F03.concurrency-con\u002F3.con51-cpp",{"title":1083,"path":1084,"stem":1085},"CON52-CPP. Prevent data races when accessing bit-fields from multiple threads","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fconcurrency-con\u002Fcon52-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F03.concurrency-con\u002F4.con52-cpp",{"title":1087,"path":1088,"stem":1089},"CON53-CPP. Avoid deadlock by locking in a predefined order","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fconcurrency-con\u002Fcon53-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F03.concurrency-con\u002F5.con53-cpp",{"title":1091,"path":1092,"stem":1093},"CON54-CPP. Wrap functions that can spuriously wake up in a loop","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fconcurrency-con\u002Fcon54-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F03.concurrency-con\u002F6.con54-cpp",{"title":1095,"path":1096,"stem":1097},"CON55-CPP. Preserve thread safety and liveness when using condition variables","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fconcurrency-con\u002Fcon55-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F03.concurrency-con\u002F7.con55-cpp",{"title":1099,"path":1100,"stem":1101},"CON56-CPP. Do not speculatively lock a non-recursive mutex that is already owned by the calling thread","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fconcurrency-con\u002Fcon56-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F03.concurrency-con\u002F8.con56-cpp",{"title":1103,"path":1104,"stem":1105,"children":1106},"Containers (CTR)","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fcontainers-ctr","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F04.containers-ctr\u002F01.index",[1107,1108,1112,1116,1120,1124,1128,1132,1136,1140],{"title":1103,"path":1104,"stem":1105},{"title":1109,"path":1110,"stem":1111},"CTR50-CPP. Guarantee that container indices and iterators are within the valid range","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fcontainers-ctr\u002Fctr50-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F04.containers-ctr\u002F02.ctr50-cpp",{"title":1113,"path":1114,"stem":1115},"CTR51-CPP. Use valid references, pointers, and iterators to reference elements of a container","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fcontainers-ctr\u002Fctr51-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F04.containers-ctr\u002F03.ctr51-cpp",{"title":1117,"path":1118,"stem":1119},"CTR52-CPP. Guarantee that library functions do not overflow","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fcontainers-ctr\u002Fctr52-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F04.containers-ctr\u002F04.ctr52-cpp",{"title":1121,"path":1122,"stem":1123},"CTR53-CPP. Use valid iterator ranges","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fcontainers-ctr\u002Fctr53-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F04.containers-ctr\u002F05.ctr53-cpp",{"title":1125,"path":1126,"stem":1127},"CTR54-CPP. Do not subtract iterators that do not refer to the same container","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fcontainers-ctr\u002Fctr54-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F04.containers-ctr\u002F06.ctr54-cpp",{"title":1129,"path":1130,"stem":1131},"CTR55-CPP. Do not use an additive operator on an iterator if the result would overflow","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fcontainers-ctr\u002Fctr55-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F04.containers-ctr\u002F07.ctr55-cpp",{"title":1133,"path":1134,"stem":1135},"CTR56-CPP. Do not use pointer arithmetic on polymorphic objects","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fcontainers-ctr\u002Fctr56-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F04.containers-ctr\u002F08.ctr56-cpp",{"title":1137,"path":1138,"stem":1139},"CTR57-CPP. Provide a valid ordering predicate","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fcontainers-ctr\u002Fctr57-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F04.containers-ctr\u002F09.ctr57-cpp",{"title":1141,"path":1142,"stem":1143},"CTR58-CPP. Predicate function objects should not be mutable","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fcontainers-ctr\u002Fctr58-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F04.containers-ctr\u002F10.ctr58-cpp",{"title":1145,"path":1146,"stem":1147,"children":1148},"Declarations and Initialization (DCL)","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fdeclarations-and-initialization-dcl","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F05.declarations-and-initialization-dcl\u002F01.index",[1149,1150,1154,1158,1162,1166,1170,1174,1178,1182,1186,1190],{"title":1145,"path":1146,"stem":1147},{"title":1151,"path":1152,"stem":1153},"DCL50-CPP. Do not define a C-style variadic function","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fdeclarations-and-initialization-dcl\u002Fdcl50-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F05.declarations-and-initialization-dcl\u002F02.dcl50-cpp",{"title":1155,"path":1156,"stem":1157},"DCL51-CPP. Do not declare or define a reserved identifier","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fdeclarations-and-initialization-dcl\u002Fdcl51-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F05.declarations-and-initialization-dcl\u002F03.dcl51-cpp",{"title":1159,"path":1160,"stem":1161},"DCL52-CPP. Never qualify a reference type with const or volatile","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fdeclarations-and-initialization-dcl\u002Fdcl52-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F05.declarations-and-initialization-dcl\u002F04.dcl52-cpp",{"title":1163,"path":1164,"stem":1165},"DCL53-CPP. Do not write syntactically ambiguous declarations","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fdeclarations-and-initialization-dcl\u002Fdcl53-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F05.declarations-and-initialization-dcl\u002F05.dcl53-cpp",{"title":1167,"path":1168,"stem":1169},"DCL54-CPP. Overload allocation and deallocation functions as a pair in the same scope","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fdeclarations-and-initialization-dcl\u002Fdcl54-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F05.declarations-and-initialization-dcl\u002F06.dcl54-cpp",{"title":1171,"path":1172,"stem":1173},"DCL55-CPP. Avoid information leakage when passing a class object across a trust boundary","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fdeclarations-and-initialization-dcl\u002Fdcl55-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F05.declarations-and-initialization-dcl\u002F07.dcl55-cpp",{"title":1175,"path":1176,"stem":1177},"DCL56-CPP. Avoid cycles during initialization of static objects","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fdeclarations-and-initialization-dcl\u002Fdcl56-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F05.declarations-and-initialization-dcl\u002F08.dcl56-cpp",{"title":1179,"path":1180,"stem":1181},"DCL57-CPP. Do not let exceptions escape from destructors or deallocation functions","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fdeclarations-and-initialization-dcl\u002Fdcl57-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F05.declarations-and-initialization-dcl\u002F09.dcl57-cpp",{"title":1183,"path":1184,"stem":1185},"DCL58-CPP. Do not modify the standard namespaces","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fdeclarations-and-initialization-dcl\u002Fdcl58-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F05.declarations-and-initialization-dcl\u002F10.dcl58-cpp",{"title":1187,"path":1188,"stem":1189},"DCL59-CPP. Do not define an unnamed namespace in a header file","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fdeclarations-and-initialization-dcl\u002Fdcl59-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F05.declarations-and-initialization-dcl\u002F11.dcl59-cpp",{"title":1191,"path":1192,"stem":1193},"DCL60-CPP. Obey the one-definition rule","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fdeclarations-and-initialization-dcl\u002Fdcl60-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F05.declarations-and-initialization-dcl\u002F12.dcl60-cpp",{"title":1195,"path":1196,"stem":1197,"children":1198},"Exceptions and Error Handling (ERR)","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fexceptions-and-error-handling-err","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F06.exceptions-and-error-handling-err\u002F01.index",[1199,1200,1204,1208,1212,1216,1220,1224,1228,1232,1236,1240,1244,1248],{"title":1195,"path":1196,"stem":1197},{"title":1201,"path":1202,"stem":1203},"ERR50-CPP. Do not abruptly terminate the program","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fexceptions-and-error-handling-err\u002Ferr50-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F06.exceptions-and-error-handling-err\u002F02.err50-cpp",{"title":1205,"path":1206,"stem":1207},"ERR51-CPP. Handle all exceptions","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fexceptions-and-error-handling-err\u002Ferr51-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F06.exceptions-and-error-handling-err\u002F03.err51-cpp",{"title":1209,"path":1210,"stem":1211},"ERR52-CPP. Do not use setjmp() or longjmp()","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fexceptions-and-error-handling-err\u002Ferr52-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F06.exceptions-and-error-handling-err\u002F04.err52-cpp",{"title":1213,"path":1214,"stem":1215},"ERR53-CPP. Do not reference base classes or class data members in a constructor or destructor function-try-block handler","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fexceptions-and-error-handling-err\u002Ferr53-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F06.exceptions-and-error-handling-err\u002F05.err53-cpp",{"title":1217,"path":1218,"stem":1219},"ERR54-CPP. Catch handlers should order their parameter types from most derived to least derived","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fexceptions-and-error-handling-err\u002Ferr54-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F06.exceptions-and-error-handling-err\u002F06.err54-cpp",{"title":1221,"path":1222,"stem":1223},"ERR55-CPP. Honor exception specifications","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fexceptions-and-error-handling-err\u002Ferr55-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F06.exceptions-and-error-handling-err\u002F07.err55-cpp",{"title":1225,"path":1226,"stem":1227},"ERR56-CPP. Guarantee exception safety","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fexceptions-and-error-handling-err\u002Ferr56-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F06.exceptions-and-error-handling-err\u002F08.err56-cpp",{"title":1229,"path":1230,"stem":1231},"ERR57-CPP. Do not leak resources when handling exceptions","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fexceptions-and-error-handling-err\u002Ferr57-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F06.exceptions-and-error-handling-err\u002F09.err57-cpp",{"title":1233,"path":1234,"stem":1235},"ERR58-CPP. Handle all exceptions thrown before main() begins executing","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fexceptions-and-error-handling-err\u002Ferr58-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F06.exceptions-and-error-handling-err\u002F10.err58-cpp",{"title":1237,"path":1238,"stem":1239},"ERR59-CPP. Do not throw an exception across execution boundaries","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fexceptions-and-error-handling-err\u002Ferr59-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F06.exceptions-and-error-handling-err\u002F11.err59-cpp",{"title":1241,"path":1242,"stem":1243},"ERR60-CPP. Exception objects must be nothrow copy constructible","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fexceptions-and-error-handling-err\u002Ferr60-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F06.exceptions-and-error-handling-err\u002F12.err60-cpp",{"title":1245,"path":1246,"stem":1247},"ERR61-CPP. Catch exceptions by lvalue reference","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fexceptions-and-error-handling-err\u002Ferr61-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F06.exceptions-and-error-handling-err\u002F13.err61-cpp",{"title":1249,"path":1250,"stem":1251},"ERR62-CPP. Detect errors when converting a string to a number","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fexceptions-and-error-handling-err\u002Ferr62-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F06.exceptions-and-error-handling-err\u002F14.err62-cpp",{"title":1253,"path":1254,"stem":1255,"children":1256},"Expressions (EXP)","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fexpressions-exp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F07.expressions-exp\u002F01.index",[1257,1258,1262,1266,1270,1274,1278,1282,1286,1290,1294,1298,1302,1306,1310],{"title":1253,"path":1254,"stem":1255},{"title":1259,"path":1260,"stem":1261},"EXP50-CPP. Do not depend on the order of evaluation for side effects","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fexpressions-exp\u002Fexp50-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F07.expressions-exp\u002F02.exp50-cpp",{"title":1263,"path":1264,"stem":1265},"EXP51-CPP. Do not delete an array through a pointer of the incorrect type","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fexpressions-exp\u002Fexp51-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F07.expressions-exp\u002F03.exp51-cpp",{"title":1267,"path":1268,"stem":1269},"EXP52-CPP. Do not rely on side effects in unevaluated operands","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fexpressions-exp\u002Fexp52-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F07.expressions-exp\u002F04.exp52-cpp",{"title":1271,"path":1272,"stem":1273},"EXP53-CPP. Do not read uninitialized memory","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fexpressions-exp\u002Fexp53-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F07.expressions-exp\u002F05.exp53-cpp",{"title":1275,"path":1276,"stem":1277},"EXP54-CPP. Do not access an object outside of its lifetime","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fexpressions-exp\u002Fexp54-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F07.expressions-exp\u002F06.exp54-cpp",{"title":1279,"path":1280,"stem":1281},"EXP55-CPP. Do not access a cv-qualified object through a cv-unqualified type","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fexpressions-exp\u002Fexp55-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F07.expressions-exp\u002F07.exp55-cpp",{"title":1283,"path":1284,"stem":1285},"EXP56-CPP. Do not call a function with a mismatched language linkage","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fexpressions-exp\u002Fexp56-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F07.expressions-exp\u002F08.exp56-cpp",{"title":1287,"path":1288,"stem":1289},"EXP57-CPP. Do not cast or delete pointers to incomplete classes","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fexpressions-exp\u002Fexp57-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F07.expressions-exp\u002F09.exp57-cpp",{"title":1291,"path":1292,"stem":1293},"EXP58-CPP. Pass an object of the correct type to va_start","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fexpressions-exp\u002Fexp58-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F07.expressions-exp\u002F10.exp58-cpp",{"title":1295,"path":1296,"stem":1297},"EXP59-CPP. Use offsetof() on valid types and members","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fexpressions-exp\u002Fexp59-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F07.expressions-exp\u002F11.exp59-cpp",{"title":1299,"path":1300,"stem":1301},"EXP60-CPP. Do not pass a nonstandard-layout type object across execution boundaries","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fexpressions-exp\u002Fexp60-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F07.expressions-exp\u002F12.exp60-cpp",{"title":1303,"path":1304,"stem":1305},"EXP61-CPP. A lambda object must not outlive any of its reference captured objects","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fexpressions-exp\u002Fexp61-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F07.expressions-exp\u002F13.exp61-cpp",{"title":1307,"path":1308,"stem":1309},"EXP62-CPP. Do not access the bits of an object representation that are not part of the object's value representation","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fexpressions-exp\u002Fexp62-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F07.expressions-exp\u002F14.exp62-cpp",{"title":1311,"path":1312,"stem":1313},"EXP63-CPP. Do not rely on the value of a moved-from object","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fexpressions-exp\u002Fexp63-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F07.expressions-exp\u002F15.exp63-cpp",{"title":960,"path":961,"stem":962,"children":1315},[1316,1317,1318],{"title":960,"path":961,"stem":962},{"title":30,"path":954,"stem":956},{"title":964,"path":924,"stem":965},{"title":1320,"path":1321,"stem":1322,"children":1323},"Integers (INT)","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fintegers-int","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F09.integers-int\u002F1.index",[1324,1325],{"title":1320,"path":1321,"stem":1322},{"title":1326,"path":1327,"stem":1328},"INT50-CPP. Do not cast to an out-of-range enumeration value","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fintegers-int\u002Fint50-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F09.integers-int\u002F2.int50-cpp",{"title":1330,"path":1331,"stem":1332,"children":1333},"Memory Management (MEM)","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fmemory-management-mem","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F10.memory-management-mem\u002F1.index",[1334,1335,1339,1343,1347,1351,1355,1359,1363],{"title":1330,"path":1331,"stem":1332},{"title":1336,"path":1337,"stem":1338},"MEM50-CPP. Do not access freed memory","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fmemory-management-mem\u002Fmem50-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F10.memory-management-mem\u002F2.mem50-cpp",{"title":1340,"path":1341,"stem":1342},"MEM51-CPP. Properly deallocate dynamically allocated resources","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fmemory-management-mem\u002Fmem51-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F10.memory-management-mem\u002F3.mem51-cpp",{"title":1344,"path":1345,"stem":1346},"MEM52-CPP. Detect and handle memory allocation errors","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fmemory-management-mem\u002Fmem52-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F10.memory-management-mem\u002F4.mem52-cpp",{"title":1348,"path":1349,"stem":1350},"MEM53-CPP. Explicitly construct and destruct objects when manually managing object lifetime","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fmemory-management-mem\u002Fmem53-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F10.memory-management-mem\u002F5.mem53-cpp",{"title":1352,"path":1353,"stem":1354},"MEM54-CPP. Provide placement new with properly aligned pointers to sufficient storage capacity","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fmemory-management-mem\u002Fmem54-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F10.memory-management-mem\u002F6.mem54-cpp",{"title":1356,"path":1357,"stem":1358},"MEM55-CPP. Honor replacement dynamic storage management requirements","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fmemory-management-mem\u002Fmem55-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F10.memory-management-mem\u002F7.mem55-cpp",{"title":1360,"path":1361,"stem":1362},"MEM56-CPP. Do not store an already-owned pointer value in an unrelated smart pointer","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fmemory-management-mem\u002Fmem56-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F10.memory-management-mem\u002F8.mem56-cpp",{"title":1364,"path":1365,"stem":1366},"MEM57-CPP. Avoid using default operator new for over-aligned types","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fmemory-management-mem\u002Fmem57-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F10.memory-management-mem\u002F9.mem57-cpp",{"title":1368,"path":1369,"stem":1370,"children":1371},"Miscellaneous (MSC)","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fmiscellaneous-msc","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F11.miscellaneous-msc\u002F1.index",[1372,1373,1377,1381,1385,1389],{"title":1368,"path":1369,"stem":1370},{"title":1374,"path":1375,"stem":1376},"MSC51-CPP. Ensure your random number generator is properly seeded","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fmiscellaneous-msc\u002Fmsc51-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F11.miscellaneous-msc\u002F2.msc51-cpp",{"title":1378,"path":1379,"stem":1380},"MSC52-CPP. Value-returning functions must return a value from all exit paths","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fmiscellaneous-msc\u002Fmsc52-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F11.miscellaneous-msc\u002F3.msc52-cpp",{"title":1382,"path":1383,"stem":1384},"MSC53-CPP. Do not return from a function declared [[noreturn]]","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fmiscellaneous-msc\u002Fmsc53-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F11.miscellaneous-msc\u002F4.msc53-cpp",{"title":1386,"path":1387,"stem":1388},"MSC54-CPP. A signal handler must be a plain old function","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fmiscellaneous-msc\u002Fmsc54-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F11.miscellaneous-msc\u002F5.msc54-cpp",{"title":1390,"path":1391,"stem":1392},"rand() for generating pseudorandom numbers","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fmiscellaneous-msc\u002Frand-for-generating-pseudorandom-numbers","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F11.miscellaneous-msc\u002F6.rand-for-generating-pseudorandom-numbers",{"title":1394,"path":1395,"stem":1396,"children":1397},"Object Oriented Programming (OOP)","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fobject-oriented-programming-oop","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F12.object-oriented-programming-oop\u002F01.index",[1398,1399,1403,1407,1411,1415,1419,1423,1427,1431],{"title":1394,"path":1395,"stem":1396},{"title":1400,"path":1401,"stem":1402},"OOP50-CPP. Do not invoke virtual functions from constructors or destructors","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fobject-oriented-programming-oop\u002Foop50-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F12.object-oriented-programming-oop\u002F02.oop50-cpp",{"title":1404,"path":1405,"stem":1406},"OOP51-CPP. Do not slice derived objects","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fobject-oriented-programming-oop\u002Foop51-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F12.object-oriented-programming-oop\u002F03.oop51-cpp",{"title":1408,"path":1409,"stem":1410},"OOP52-CPP. Do not delete a polymorphic object without a virtual destructor","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fobject-oriented-programming-oop\u002Foop52-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F12.object-oriented-programming-oop\u002F04.oop52-cpp",{"title":1412,"path":1413,"stem":1414},"OOP53-CPP. Write constructor member initializers in the canonical order","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fobject-oriented-programming-oop\u002Foop53-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F12.object-oriented-programming-oop\u002F05.oop53-cpp",{"title":1416,"path":1417,"stem":1418},"OOP54-CPP. Gracefully handle self-copy assignment","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fobject-oriented-programming-oop\u002Foop54-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F12.object-oriented-programming-oop\u002F06.oop54-cpp",{"title":1420,"path":1421,"stem":1422},"OOP55-CPP. Do not use pointer-to-member operators to access nonexistent members","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fobject-oriented-programming-oop\u002Foop55-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F12.object-oriented-programming-oop\u002F07.oop55-cpp",{"title":1424,"path":1425,"stem":1426},"OOP56-CPP. Honor replacement handler requirements","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fobject-oriented-programming-oop\u002Foop56-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F12.object-oriented-programming-oop\u002F08.oop56-cpp",{"title":1428,"path":1429,"stem":1430},"OOP57-CPP. Prefer special member functions and overloaded operators to C Standard Library functions","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fobject-oriented-programming-oop\u002Foop57-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F12.object-oriented-programming-oop\u002F09.oop57-cpp",{"title":1432,"path":1433,"stem":1434},"OOP58-CPP. Copy operations must not mutate the source object","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fobject-oriented-programming-oop\u002Foop58-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F12.object-oriented-programming-oop\u002F10.oop58-cpp",{"title":1436,"path":1437,"stem":1438,"children":1439},"Back Matter","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F1.index",[1440,1441,1445,1449,1632,1646],{"title":1436,"path":1437,"stem":1438},{"title":1442,"path":1443,"stem":1444},"AA. Bibliography","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Faa-bibliography","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F2.aa-bibliography",{"title":1446,"path":1447,"stem":1448},"BB. Definitions","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fbb-definitions","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F3.bb-definitions",{"title":1450,"path":1451,"stem":1452,"children":1453},"CC. Analyzers","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F01.index",[1454,1455,1459,1463,1465,1469,1473,1477,1481,1485,1489,1493,1497,1499,1503,1507,1511,1515,1519,1523,1527,1531,1535,1537,1541,1545,1549,1553,1557,1560,1564,1566,1570,1574,1578,1582,1586,1590,1594,1598,1602,1604,1608,1612,1616,1620,1624,1628],{"title":1450,"path":1451,"stem":1452},{"title":1456,"path":1457,"stem":1458},"Astrée","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fastree","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F02.astree",{"title":1460,"path":1461,"stem":1462},"Astrée_V","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fastree_v","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F03.astree_v",{"title":640,"path":639,"stem":1464},"5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F04.axivion-bauhaus-suite",{"title":1466,"path":1467,"stem":1468},"Axivion Bauhaus Suite_V","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Faxivion-bauhaus-suite_v","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F05.axivion-bauhaus-suite_v",{"title":1470,"path":1471,"stem":1472},"Clang","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fclang","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F06.clang",{"title":1474,"path":1475,"stem":1476},"Clang_38_V","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fclang_38_v","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F07.clang_38_v",{"title":1478,"path":1479,"stem":1480},"Clang_39_V","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fclang_39_v","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F08.clang_39_v",{"title":1482,"path":1483,"stem":1484},"Clang_40_V","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fclang_40_v","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F09.clang_40_v",{"title":1486,"path":1487,"stem":1488},"Clang_V","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fclang_v","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F10.clang_v",{"title":1490,"path":1491,"stem":1492},"Codee","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fcodee","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F11.codee",{"title":1494,"path":1495,"stem":1496},"Codee_V","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fcodee_v","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F12.codee_v",{"title":671,"path":670,"stem":1498},"5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F13.codesonar",{"title":1500,"path":1501,"stem":1502},"CodeSonar_V","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fcodesonar_v","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F14.codesonar_v",{"title":1504,"path":1505,"stem":1506},"Coverity","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fcoverity","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F15.coverity",{"title":1508,"path":1509,"stem":1510},"Coverity_V","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fcoverity_v","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F16.coverity_v",{"title":1512,"path":1513,"stem":1514},"ECLAIR","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Feclair","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F17.eclair",{"title":1516,"path":1517,"stem":1518},"ECLAIR_V","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Feclair_v","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F18.eclair_v",{"title":1520,"path":1521,"stem":1522},"EDG","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fedg","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F19.edg",{"title":1524,"path":1525,"stem":1526},"Edg_V","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fedg_v","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F20.edg_v",{"title":1528,"path":1529,"stem":1530},"GCC","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fgcc","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F21.gcc",{"title":1532,"path":1533,"stem":1534},"Gcc_V","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fgcc_v","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F22.gcc_v",{"title":706,"path":705,"stem":1536},"5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F23.helix-qac",{"title":1538,"path":1539,"stem":1540},"Helix QAC_V","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fhelix-qac_v","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F24.helix-qac_v",{"title":1542,"path":1543,"stem":1544},"Klocwork","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fklocwork","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F25.klocwork",{"title":1546,"path":1547,"stem":1548},"Klocwork_V","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fklocwork_v","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F26.klocwork_v",{"title":1550,"path":1551,"stem":1552},"LDRA","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fldra","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F27.ldra",{"title":1554,"path":1555,"stem":1556},"Ldra_V","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fldra_v","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F28.ldra_v",{"title":1558,"path":735,"stem":1559},"Parasoft","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F29.parasoft",{"title":1561,"path":1562,"stem":1563},"Parasoft_V","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fparasoft_v","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F30.parasoft_v",{"title":762,"path":761,"stem":1565},"5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F31.polyspace-bug-finder",{"title":1567,"path":1568,"stem":1569},"Polyspace Bug Finder_V","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fpolyspace-bug-finder_v","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F32.polyspace-bug-finder_v",{"title":1571,"path":1572,"stem":1573},"PRQA QA-C++","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fprqa-qa-cpp","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F33.prqa-qa-cpp",{"title":1575,"path":1576,"stem":1577},"PRQA QA-C++_V","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fprqa-qa-cpp_v","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F34.prqa-qa-cpp_v",{"title":1579,"path":1580,"stem":1581},"PVS-Studio","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fpvs-studio","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F35.pvs-studio",{"title":1583,"path":1584,"stem":1585},"PVS-Studio_V","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fpvs-studio_v","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F36.pvs-studio_v",{"title":1587,"path":1588,"stem":1589},"Rose","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Frose","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F37.rose",{"title":1591,"path":1592,"stem":1593},"Rose_V","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Frose_v","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F38.rose_v",{"title":1595,"path":1596,"stem":1597},"RuleChecker","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Frulechecker","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F39.rulechecker",{"title":1599,"path":1600,"stem":1601},"RuleChecker_V","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Frulechecker_v","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F40.rulechecker_v",{"title":788,"path":787,"stem":1603},"5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F41.security-reviewer-static-reviewer",{"title":1605,"path":1606,"stem":1607},"Security Reviewer - Static Reviewer_V","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fsecurity-reviewer-static-reviewer_v","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F42.security-reviewer-static-reviewer_v",{"title":1609,"path":1610,"stem":1611},"Semgrep","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fsemgrep","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F43.semgrep",{"title":1613,"path":1614,"stem":1615},"Semgrep_V","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fsemgrep_v","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F44.semgrep_v",{"title":1617,"path":1618,"stem":1619},"SonarQube C\u002FC++ Plugin","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fsonarqube-ccpp-plugin","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F45.sonarqube-ccpp-plugin",{"title":1621,"path":1622,"stem":1623},"SonarQube C\u002FC++ Plugin_V","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fsonarqube-ccpp-plugin_v","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F46.sonarqube-ccpp-plugin_v",{"title":1625,"path":1626,"stem":1627},"Splint","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fsplint","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F47.splint",{"title":1629,"path":1630,"stem":1631},"Splint_V","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fsplint_v","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F48.splint_v",{"title":1633,"path":1634,"stem":1635,"children":1636},"DD. Related Guidelines","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fdd-related-guidelines","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F5.dd-related-guidelines\u002F1.index",[1637,1638,1642],{"title":1633,"path":1634,"stem":1635},{"title":1639,"path":1640,"stem":1641},"2008","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fdd-related-guidelines\u002F2.2008","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F5.dd-related-guidelines\u002F2.2008",{"title":1643,"path":1644,"stem":1645},"MITRE CWE","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fdd-related-guidelines\u002Fmitre-cwe","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F5.dd-related-guidelines\u002F3.mitre-cwe",{"title":1647,"path":1648,"stem":1649},"EE. Risk Assessments","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fee-risk-assessments","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F6.ee-risk-assessments",{"title":1651,"path":1652,"stem":1653,"children":1654},"Admin","\u002Fsei-cert-cpp-coding-standard\u002Fadmin","5.sei-cert-cpp-coding-standard\u002F5.admin\u002F1.index",[1655,1656],{"title":1651,"path":1652,"stem":1653},{"title":1657,"path":1658,"stem":1659},"TODO List","\u002Fsei-cert-cpp-coding-standard\u002Fadmin\u002Ftodo-list","5.sei-cert-cpp-coding-standard\u002F5.admin\u002F2.todo-list",{"title":1661,"path":1662,"stem":1663},"Errata for SEI CERT C++ Coding Standard (2016 Edition)","\u002Fsei-cert-cpp-coding-standard\u002Ferrata-for-sei-cert-cpp-coding-standard-2016-edition","5.sei-cert-cpp-coding-standard\u002F6.errata-for-sei-cert-cpp-coding-standard-2016-edition",1775657782007]