[{"data":1,"prerenderedAt":1664},["ShallowReactive",2],{"global-navigation":3,"page-\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fmiscellaneous-msc\u002Fmsc50-cpp":31,"surround-\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fmiscellaneous-msc\u002Fmsc50-cpp":975,"sidebar-sei-cert-cpp-coding-standard":984},[4,8],{"title":5,"path":6,"_path":6,"fromAppConfig":7},"Home","\u002F",true,{"title":9,"path":10,"children":11,"_path":30,"fromAppConfig":7},"Coding Standards","\u002Fcoding-standards\u002F",[12,15,18,21,24,27],{"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},"Fortran Coding Standard","\u002Fsei-cert-fortran-coding-standard\u002F",{"title":25,"path":26},"Java Coding Standard","\u002Fsei-cert-oracle-coding-standard-for-java\u002F",{"title":28,"path":29},"Perl Coding Standard","\u002Fsei-cert-perl-coding-standard\u002F","\u002Fcoding-standards",{"id":32,"title":33,"body":34,"description":44,"extension":960,"meta":961,"navigation":7,"path":971,"seo":972,"stem":973,"__hash__":974},"content\u002F5.sei-cert-cpp-coding-standard\u002F3.rules\u002F11.miscellaneous-msc\u002F6.msc50-cpp.md","MSC50-CPP. Do not use std::rand() for generating pseudorandom numbers",{"type":35,"value":36,"toc":951},"minimark",[37,41,45,64,69,79,221,225,236,387,395,399,405,473,477,791,795,808,812,885,889,925,928,947],[38,39,33],"h1",{"id":40},"msc50-cpp-do-not-use-stdrand-for-generating-pseudorandom-numbers",[42,43,44],"p",{},"Pseudorandom number generators use mathematical algorithms to produce a sequence of numbers with good statistical properties, but the numbers produced are not genuinely random.",[42,46,47,48,52,53,56,57,60,61,63],{},"The C Standard ",[49,50,51],"code",{},"rand()"," function, exposed through the C++ standard library through ",[49,54,55],{},"\u003Ccstdlib>"," as ",[49,58,59],{},"std::rand()"," , makes no guarantees as to the quality of the random sequence produced. The numbers generated by some implementations of ",[49,62,59],{}," have a comparatively short cycle, and the numbers can be predictable. Applications that have strong pseudorandom number requirements must use a generator that is known to be sufficient for their needs.",[65,66,68],"h2",{"id":67},"noncompliant-code-example","Noncompliant Code Example",[42,70,71,72,74,75,78],{},"The following noncompliant code generates an ID with a numeric part produced by calling the ",[49,73,51],{}," function. The IDs produced are predictable and have limited randomness. Further, depending on the value of ",[49,76,77],{},"RAND_MAX"," , the resulting value can have modulo bias.",[80,81,83],"code-block",{"quality":82},"bad",[84,85,90],"pre",{"className":86,"code":87,"language":88,"meta":89,"style":89},"language-cpp shiki shiki-themes github-light-high-contrast github-dark-high-contrast monokai","#include \u003Ccstdlib>\n#include \u003Cstring>\n \nvoid f() {\n  std::string id(\"ID\"); \u002F\u002F Holds the ID, starting with the characters \"ID\" followed\n                        \u002F\u002F by a random integer in the range [0-10000].\n  id += std::to_string(std::rand() % 10000);\n  \u002F\u002F ...\n}\n","cpp","",[49,91,92,105,113,120,134,163,169,209,215],{"__ignoreMap":89},[93,94,97,101],"span",{"class":95,"line":96},"line",1,[93,98,100],{"class":99},"sDW38","#include",[93,102,104],{"class":103},"sQ5S0"," \u003Ccstdlib>\n",[93,106,108,110],{"class":95,"line":107},2,[93,109,100],{"class":99},[93,111,112],{"class":103}," \u003Cstring>\n",[93,114,116],{"class":95,"line":115},3,[93,117,119],{"class":118},"sgGSh"," \n",[93,121,123,127,131],{"class":95,"line":122},4,[93,124,126],{"class":125},"sMkm0","void",[93,128,130],{"class":129},"sx5EZ"," f",[93,132,133],{"class":118},"() {\n",[93,135,137,141,144,147,150,153,156,159],{"class":95,"line":136},5,[93,138,140],{"class":139},"sSOQW","  std",[93,142,143],{"class":118},"::",[93,145,146],{"class":139},"string",[93,148,149],{"class":129}," id",[93,151,152],{"class":118},"(",[93,154,155],{"class":103},"\"ID\"",[93,157,158],{"class":118},");",[93,160,162],{"class":161},"sqELk"," \u002F\u002F Holds the ID, starting with the characters \"ID\" followed\n",[93,164,166],{"class":95,"line":165},6,[93,167,168],{"class":161},"                        \u002F\u002F by a random integer in the range [0-10000].\n",[93,170,172,175,178,181,183,186,188,191,193,196,199,202,206],{"class":95,"line":171},7,[93,173,174],{"class":118},"  id ",[93,176,177],{"class":99},"+=",[93,179,180],{"class":139}," std",[93,182,143],{"class":118},[93,184,185],{"class":129},"to_string",[93,187,152],{"class":118},[93,189,190],{"class":139},"std",[93,192,143],{"class":118},[93,194,195],{"class":129},"rand",[93,197,198],{"class":118},"() ",[93,200,201],{"class":99},"%",[93,203,205],{"class":204},"sFRm2"," 10000",[93,207,208],{"class":118},");\n",[93,210,212],{"class":95,"line":211},8,[93,213,214],{"class":161},"  \u002F\u002F ...\n",[93,216,218],{"class":95,"line":217},9,[93,219,220],{"class":118},"}\n",[65,222,224],{"id":223},"compliant-solution","Compliant Solution",[42,226,227,228,235],{},"The C++ standard library provides mechanisms for fine-grained control over pseudorandom number generation. It breaks random number generation into two parts: one is the algorithm responsible for providing random values (the engine), and the other is responsible for distribution of the random values via a density function (the distribution). The distribution object is not strictly required, but it works to ensure that values are properly distributed within a given range instead of improperly distributed due to bias issues. This compliant solution uses the ",[229,230,234],"a",{"href":231,"rel":232},"https:\u002F\u002Fdl.acm.org\u002Fcitation.cfm?doid=272991.272995",[233],"nofollow","Mersenne Twister"," algorithm as the engine for generating random values and a uniform distribution to negate the modulo bias from the noncompliant code example.",[80,237,239],{"quality":238},"good",[84,240,242],{"className":86,"code":241,"language":88,"meta":89,"style":89},"#include \u003Crandom>\n#include \u003Cstring>\n \nvoid f() {\n  std::string id(\"ID\"); \u002F\u002F Holds the ID, starting with the characters \"ID\" followed\n                        \u002F\u002F by a random integer in the range [0-10000].\n  std::uniform_int_distribution\u003Cint> distribution(0, 10000);\n  std::random_device rd;\n  std::mt19937 engine(rd());\n  id += std::to_string(distribution(engine));\n  \u002F\u002F ...\n}\n",[49,243,244,251,257,261,269,287,291,325,337,357,377,382],{"__ignoreMap":89},[93,245,246,248],{"class":95,"line":96},[93,247,100],{"class":99},[93,249,250],{"class":103}," \u003Crandom>\n",[93,252,253,255],{"class":95,"line":107},[93,254,100],{"class":99},[93,256,112],{"class":103},[93,258,259],{"class":95,"line":115},[93,260,119],{"class":118},[93,262,263,265,267],{"class":95,"line":122},[93,264,126],{"class":125},[93,266,130],{"class":129},[93,268,133],{"class":118},[93,270,271,273,275,277,279,281,283,285],{"class":95,"line":136},[93,272,140],{"class":139},[93,274,143],{"class":118},[93,276,146],{"class":139},[93,278,149],{"class":129},[93,280,152],{"class":118},[93,282,155],{"class":103},[93,284,158],{"class":118},[93,286,162],{"class":161},[93,288,289],{"class":95,"line":165},[93,290,168],{"class":161},[93,292,293,295,297,300,303,306,309,312,314,317,320,323],{"class":95,"line":171},[93,294,140],{"class":139},[93,296,143],{"class":118},[93,298,299],{"class":139},"uniform_int_distribution",[93,301,302],{"class":118},"\u003C",[93,304,305],{"class":125},"int",[93,307,308],{"class":118},"> ",[93,310,311],{"class":129},"distribution",[93,313,152],{"class":118},[93,315,316],{"class":204},"0",[93,318,319],{"class":118},", ",[93,321,322],{"class":204},"10000",[93,324,208],{"class":118},[93,326,327,329,331,334],{"class":95,"line":211},[93,328,140],{"class":139},[93,330,143],{"class":118},[93,332,333],{"class":139},"random_device",[93,335,336],{"class":118}," rd;\n",[93,338,339,341,343,346,349,351,354],{"class":95,"line":217},[93,340,140],{"class":139},[93,342,143],{"class":118},[93,344,345],{"class":139},"mt19937",[93,347,348],{"class":129}," engine",[93,350,152],{"class":118},[93,352,353],{"class":129},"rd",[93,355,356],{"class":118},"());\n",[93,358,360,362,364,366,368,370,372,374],{"class":95,"line":359},10,[93,361,174],{"class":118},[93,363,177],{"class":99},[93,365,180],{"class":139},[93,367,143],{"class":118},[93,369,185],{"class":129},[93,371,152],{"class":118},[93,373,311],{"class":129},[93,375,376],{"class":118},"(engine));\n",[93,378,380],{"class":95,"line":379},11,[93,381,214],{"class":161},[93,383,385],{"class":95,"line":384},12,[93,386,220],{"class":118},[42,388,389,390,394],{},"This compliant solution also seeds the random number engine, in conformance with ",[229,391,393],{"href":392},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fmiscellaneous-msc\u002Fmsc51-cpp","MSC51-CPP. Ensure your random number generator is properly seeded"," .",[65,396,398],{"id":397},"risk-assessment","Risk Assessment",[42,400,401,402,404],{},"Using the ",[49,403,59],{}," function could lead to predictable random numbers.",[406,407,408,436],"table",{},[409,410,411],"thead",{},[412,413,414,418,421,424,427,430,433],"tr",{},[415,416,417],"th",{},"Rule",[415,419,420],{},"Severity",[415,422,423],{},"Likelihood",[415,425,426],{},"Detectable",[415,428,429],{},"Repairable",[415,431,432],{},"Priority",[415,434,435],{},"Level",[437,438,439],"tbody",{},[412,440,441,445,448,451,454,457,466],{},[442,443,444],"td",{},"MSC50-CPP",[442,446,447],{},"Medium",[442,449,450],{},"Unlikely",[442,452,453],{},"Yes",[442,455,456],{},"No",[442,458,459],{},[93,460,462],{"style":461},"color: #27ae60;",[463,464,465],"strong",{},"P4",[442,467,468],{},[93,469,470],{"style":461},[463,471,472],{},"L3",[65,474,476],{"id":475},"automated-detection","Automated Detection",[406,478,479,495],{},[409,480,481],{},[412,482,483,486,489,492],{},[415,484,485],{},"Tool",[415,487,488],{},"Version",[415,490,491],{},"Checker",[415,493,494],{},"Description",[437,496,497,521,542,567,607,621,643,664,684,706,728,751,770],{},[412,498,499,505,513,518],{},[442,500,501],{},[229,502,504],{"href":503},"\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fastree","Astrée",[442,506,507],{},[508,509,512],"div",{"className":510},[511],"content-wrapper","25.10",[442,514,515],{},[463,516,517],{},"bad-function (AUTOSAR.26.5.1A)",[442,519,520],{},"Fully checked",[412,522,523,529,535,540],{},[442,524,525],{},[229,526,528],{"href":527},"\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Faxivion-suite","Axivion Suite",[442,530,531],{},[508,532,534],{"className":533},[511],"7.12.0",[442,536,537],{},[463,538,539],{},"CertC++-MSC50",[442,541],{},[412,543,544,550,556,561],{},[442,545,546],{},[229,547,549],{"href":548},"\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fclang","Clang",[442,551,552],{},[508,553,555],{"className":554},[511],"4.0 (prerelease)",[442,557,558],{},[49,559,560],{},"cert-msc50-cpp",[442,562,563,564],{},"Checked by ",[49,565,566],{},"      clang-tidy     ",[412,568,569,575,581,598],{},[442,570,571],{},[229,572,574],{"href":573},"\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Fcodesonar","CodeSonar",[442,576,577],{},[508,578,580],{"className":579},[511],"9.2p0",[442,582,583,586,587,586,590,586,593,586,595],{},[463,584,585],{},"BADFUNC.RANDOM.DINIT"," ",[588,589],"br",{},[463,591,592],{},"MISC.CRYPTO.SEED",[588,594],{},[463,596,597],{},"BADFUNC.RANDOM.RAND",[442,599,600,601,603,604,606],{},"Default Initialization of Random Number Generator ",[588,602],{}," Default Seed in PRNG ",[588,605],{}," Use of rand",[412,608,609,615,617,619],{},[442,610,611],{},[229,612,614],{"href":613},"\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Frose","Compass\u002FROSE",[442,616],{},[442,618],{},[442,620],{},[412,622,623,629,635,640],{},[442,624,625],{},[229,626,628],{"href":627},"\u002Fsei-cert-c-coding-standard\u002Fback-matter\u002Fee-analyzers\u002Feclair","ECLAIR",[442,630,631],{},[508,632,634],{"className":633},[511],"1.2",[442,636,637],{},[463,638,639],{},"CC2.MSC30",[442,641,642],{},"Fully implemented",[412,644,645,651,657,662],{},[442,646,647],{},[229,648,650],{"href":649},"\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fhelix-qac","Helix QAC",[442,652,653],{},[508,654,656],{"className":655},[511],"2025.2",[442,658,659],{},[463,660,661],{},"C++5028",[442,663],{},[412,665,666,672,677,682],{},[442,667,668],{},[229,669,671],{"href":670},"\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fklocwork","Klocwork",[442,673,674],{},[508,675,656],{"className":676},[511],[442,678,679],{},[463,680,681],{},"CERT.MSC.STD_RAND_CALL",[442,683],{},[412,685,686,692,698,703],{},[442,687,688],{},[229,689,691],{"href":690},"\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fldra","LDRA tool suite",[442,693,694],{},[508,695,697],{"className":696},[511],"9.7.1",[442,699,700],{},[463,701,702],{},"44 S",[442,704,705],{},"Enhanced Enforcement",[412,707,708,714,720,725],{},[442,709,710],{},[229,711,713],{"href":712},"\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fparasoft","Parasoft C\u002FC++test",[442,715,716],{},[508,717,719],{"className":718},[511],"2026.1",[442,721,722],{},[463,723,724],{},"CERT_CPP-MSC50-a",[442,726,727],{},"Do not use the rand() function for generating pseudorandom numbers",[412,729,730,736,742,748],{},[442,731,732],{},[229,733,735],{"href":734},"\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fpolyspace-bug-finder","Polyspace Bug Finder",[442,737,738],{},[508,739,741],{"className":740},[511],"R2025b",[442,743,744],{},[229,745,747],{"href":746},"https:\u002F\u002Fwww.mathworks.com\u002Fhelp\u002Fbugfinder\u002Fref\u002Fcertcmsc50cpp.html","CERT C++: MSC50-CPP",[442,749,750],{},"Checks for use of vulnerable pseudo-random number generator (rule partially covered)",[412,752,753,759,764,768],{},[442,754,755],{},[229,756,758],{"href":757},"\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Frulechecker","RuleChecker",[442,760,761],{},[508,762,512],{"className":763},[511],[442,765,766],{},[463,767,517],{},[442,769,520],{},[412,771,772,778,784,789],{},[442,773,774],{},[229,775,777],{"href":776},"\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fsecurity-reviewer-static-reviewer","Security Reviewer - Static Reviewer",[442,779,780],{},[508,781,783],{"className":782},[511],"6.02",[442,785,786],{},[463,787,788],{},"RTOS_07",[442,790,642],{},[65,792,794],{"id":793},"related-vulnerabilities","Related Vulnerabilities",[42,796,797,798,802,803,394],{},"Search for ",[229,799,801],{"href":800},"\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fbb-definitions","vulnerabilities"," resulting from the violation of this rule on the ",[229,804,807],{"href":805,"rel":806},"https:\u002F\u002Fwww.kb.cert.org\u002Fvuls\u002Fsearch\u002F?q=MSC50-CPP",[233],"CERT website",[65,809,811],{"id":810},"related-guidelines","Related Guidelines",[406,813,814,822],{},[409,815,816],{},[412,817,818,820],{},[415,819],{},[415,821],{},[437,823,824,835,848,861],{},[412,825,826,831],{},[442,827,828],{},[229,829,830],{"href":20},"SEI CERT C++ Coding Standard",[442,832,833],{},[229,834,393],{"href":392},[412,836,837,842],{},[442,838,839],{},[229,840,841],{"href":17},"SEI CERT C Coding Standard",[442,843,844],{},[229,845,847],{"href":846},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fmiscellaneous-msc\u002Fmsc30-c","MSC30-C. Do not use the rand() function for generating pseudorandom numbers",[412,849,850,855],{},[442,851,852],{},[229,853,854],{"href":26},"CERT Oracle Secure Coding Standard for Java",[442,856,857],{},[229,858,860],{"href":859},"\u002Fsei-cert-oracle-coding-standard-for-java\u002Frules\u002Fmiscellaneous-msc\u002Fmsc02-j","MSC02-J. Generate strong random numbers",[412,862,863,870],{},[442,864,865],{},[229,866,869],{"href":867,"rel":868},"https:\u002F\u002Fcwe.mitre.org\u002F",[233],"MITRE CWE",[442,871,872,877,878,880,884],{},[229,873,876],{"href":874,"rel":875},"https:\u002F\u002Fcwe.mitre.org\u002Fdata\u002Fdefinitions\u002F327.html",[233],"CWE-327"," , Use of a Broken or Risky Cryptographic Algorithm",[588,879],{},[229,881,883],{"href":867,"rel":882},[233],"CWE-330"," , Use of Insufficiently Random Values",[65,886,888],{"id":887},"bibliography","Bibliography",[406,890,891,899],{},[409,892,893],{},[412,894,895,897],{},[415,896],{},[415,898],{},[437,900,901,914],{},[412,902,903,911],{},[442,904,905,906,910],{},"[ ",[229,907,909],{"href":908},"\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Faa-bibliography#AA.Bibliography-ISO-IEC9899-2011","ISO\u002FIEC 9899:2011"," ]",[442,912,913],{},"Subclause 7.22.2, \"Pseudo-random Sequence Generation Functions\"",[412,915,916,922],{},[442,917,905,918,910],{},[229,919,921],{"href":920},"\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Faa-bibliography#AA.Bibliography-ISO\u002FIEC14882-2014","ISO\u002FIEC 14882-2014",[442,923,924],{},"Subclause 26.5, \"Random Number Generation\"",[926,927],"hr",{},[42,929,930,586,937,586,942],{},[229,931,933],{"href":932},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fmiscellaneous-msc\u002F",[934,935],"img",{"src":936},"\u002Fattachments\u002F88046682\u002F88480621.png",[229,938,939],{"href":932},[934,940],{"src":941},"\u002Fattachments\u002F88046682\u002F88475556.png",[229,943,944],{"href":392},[934,945],{"src":946},"\u002Fattachments\u002F88046682\u002F88475555.png",[948,949,950],"style",{},"html pre.shiki code .sDW38, html code.shiki .sDW38{--shiki-default:#A0111F;--shiki-dark:#FF9492;--shiki-sepia:#F92672}html pre.shiki code .sQ5S0, html code.shiki .sQ5S0{--shiki-default:#032563;--shiki-dark:#ADDCFF;--shiki-sepia:#E6DB74}html pre.shiki code .sgGSh, html code.shiki .sgGSh{--shiki-default:#0E1116;--shiki-dark:#F0F3F6;--shiki-sepia:#F8F8F2}html pre.shiki code .sMkm0, html code.shiki .sMkm0{--shiki-default:#A0111F;--shiki-default-font-style:inherit;--shiki-dark:#FF9492;--shiki-dark-font-style:inherit;--shiki-sepia:#66D9EF;--shiki-sepia-font-style:italic}html pre.shiki code .sx5EZ, html code.shiki .sx5EZ{--shiki-default:#622CBC;--shiki-dark:#DBB7FF;--shiki-sepia:#A6E22E}html pre.shiki code .sSOQW, html code.shiki .sSOQW{--shiki-default:#702C00;--shiki-default-text-decoration:inherit;--shiki-dark:#FFB757;--shiki-dark-text-decoration:inherit;--shiki-sepia:#A6E22E;--shiki-sepia-text-decoration:underline}html pre.shiki code .sqELk, html code.shiki .sqELk{--shiki-default:#66707B;--shiki-dark:#BDC4CC;--shiki-sepia:#88846F}html pre.shiki code .sFRm2, html code.shiki .sFRm2{--shiki-default:#023B95;--shiki-dark:#91CBFF;--shiki-sepia:#AE81FF}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);}",{"title":89,"searchDepth":107,"depth":107,"links":952},[953,954,955,956,957,958,959],{"id":67,"depth":107,"text":68},{"id":223,"depth":107,"text":224},{"id":397,"depth":107,"text":398},{"id":475,"depth":107,"text":476},{"id":793,"depth":107,"text":794},{"id":810,"depth":107,"text":811},{"id":887,"depth":107,"text":888},"md",{"tags":962},[963,964,965,966,967,968,969,970],"review","ptc","review-dms","cwe-327","rule","msc","cwe-330","review-ajb","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fmiscellaneous-msc\u002Fmsc50-cpp",{"title":33,"description":44},"5.sei-cert-cpp-coding-standard\u002F3.rules\u002F11.miscellaneous-msc\u002F6.msc50-cpp","v3wLIQbxGHBFo_pRz6W0GJpbMewVgJtjXx0klsocFQU",[976,980],{"title":977,"path":978,"stem":979,"children":-1},"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":981,"path":982,"stem":983,"children":-1},"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",[985],{"title":830,"path":986,"stem":987,"children":988},"\u002Fsei-cert-cpp-coding-standard","5.sei-cert-cpp-coding-standard\u002F1.index",[989,990,1054,1447,1650,1660],{"title":830,"path":986,"stem":987},{"title":991,"path":992,"stem":993,"children":994},"Front Matter","\u002Fsei-cert-cpp-coding-standard\u002Ffront-matter","5.sei-cert-cpp-coding-standard\u002F2.front-matter\u002F1.index",[995,996],{"title":991,"path":992,"stem":993},{"title":997,"path":998,"stem":999,"children":1000},"Introduction","\u002Fsei-cert-cpp-coding-standard\u002Ffront-matter\u002Fintroduction","5.sei-cert-cpp-coding-standard\u002F2.front-matter\u002F2.introduction\u002F01.index",[1001,1002,1006,1010,1014,1018,1022,1026,1030,1034,1038,1042,1046,1050],{"title":997,"path":998,"stem":999},{"title":1003,"path":1004,"stem":1005},"Scope","\u002Fsei-cert-cpp-coding-standard\u002Ffront-matter\u002Fintroduction\u002Fscope","5.sei-cert-cpp-coding-standard\u002F2.front-matter\u002F2.introduction\u002F02.scope",{"title":1007,"path":1008,"stem":1009},"Audience","\u002Fsei-cert-cpp-coding-standard\u002Ffront-matter\u002Fintroduction\u002Faudience","5.sei-cert-cpp-coding-standard\u002F2.front-matter\u002F2.introduction\u002F03.audience",{"title":1011,"path":1012,"stem":1013},"Usage","\u002Fsei-cert-cpp-coding-standard\u002Ffront-matter\u002Fintroduction\u002Fusage","5.sei-cert-cpp-coding-standard\u002F2.front-matter\u002F2.introduction\u002F04.usage",{"title":1015,"path":1016,"stem":1017},"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":1019,"path":1020,"stem":1021},"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":1023,"path":1024,"stem":1025},"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":1027,"path":1028,"stem":1029},"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":1031,"path":1032,"stem":1033},"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":1035,"path":1036,"stem":1037},"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":1039,"path":1040,"stem":1041},"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":1043,"path":1044,"stem":1045},"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":1047,"path":1048,"stem":1049},"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":1051,"path":1052,"stem":1053},"Acknowledgments","\u002Fsei-cert-cpp-coding-standard\u002Ffront-matter\u002Fintroduction\u002Facknowledgments","5.sei-cert-cpp-coding-standard\u002F2.front-matter\u002F2.introduction\u002F14.acknowledgments",{"title":1055,"path":1056,"stem":1057,"children":1058},"Rules","\u002Fsei-cert-cpp-coding-standard\u002Frules","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F01.index",[1059,1060,1082,1116,1158,1208,1266,1328,1342,1352,1390,1408],{"title":1055,"path":1056,"stem":1057},{"title":1061,"path":1062,"stem":1063,"children":1064},"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",[1065,1066,1070,1074,1078],{"title":1061,"path":1062,"stem":1063},{"title":1067,"path":1068,"stem":1069},"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":1071,"path":1072,"stem":1073},"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":1075,"path":1076,"stem":1077},"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":1079,"path":1080,"stem":1081},"STR51-CPP. Do not attempt to create a std::string from a null pointer","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fcharacters-and-strings-str\u002Fstr51-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F02.characters-and-strings-str\u002F5.str51-cpp",{"title":1083,"path":1084,"stem":1085,"children":1086},"Concurrency (CON)","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fconcurrency-con","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F03.concurrency-con\u002F1.index",[1087,1088,1092,1096,1100,1104,1108,1112],{"title":1083,"path":1084,"stem":1085},{"title":1089,"path":1090,"stem":1091},"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":1093,"path":1094,"stem":1095},"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":1097,"path":1098,"stem":1099},"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":1101,"path":1102,"stem":1103},"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":1105,"path":1106,"stem":1107},"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":1109,"path":1110,"stem":1111},"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":1113,"path":1114,"stem":1115},"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":1117,"path":1118,"stem":1119,"children":1120},"Containers (CTR)","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fcontainers-ctr","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F04.containers-ctr\u002F01.index",[1121,1122,1126,1130,1134,1138,1142,1146,1150,1154],{"title":1117,"path":1118,"stem":1119},{"title":1123,"path":1124,"stem":1125},"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":1127,"path":1128,"stem":1129},"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":1131,"path":1132,"stem":1133},"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":1135,"path":1136,"stem":1137},"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":1139,"path":1140,"stem":1141},"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":1143,"path":1144,"stem":1145},"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":1147,"path":1148,"stem":1149},"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":1151,"path":1152,"stem":1153},"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":1155,"path":1156,"stem":1157},"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":1159,"path":1160,"stem":1161,"children":1162},"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",[1163,1164,1168,1172,1176,1180,1184,1188,1192,1196,1200,1204],{"title":1159,"path":1160,"stem":1161},{"title":1165,"path":1166,"stem":1167},"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":1169,"path":1170,"stem":1171},"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":1173,"path":1174,"stem":1175},"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":1177,"path":1178,"stem":1179},"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":1181,"path":1182,"stem":1183},"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":1185,"path":1186,"stem":1187},"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":1189,"path":1190,"stem":1191},"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":1193,"path":1194,"stem":1195},"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":1197,"path":1198,"stem":1199},"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":1201,"path":1202,"stem":1203},"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":1205,"path":1206,"stem":1207},"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":1209,"path":1210,"stem":1211,"children":1212},"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",[1213,1214,1218,1222,1226,1230,1234,1238,1242,1246,1250,1254,1258,1262],{"title":1209,"path":1210,"stem":1211},{"title":1215,"path":1216,"stem":1217},"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":1219,"path":1220,"stem":1221},"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":1223,"path":1224,"stem":1225},"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":1227,"path":1228,"stem":1229},"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":1231,"path":1232,"stem":1233},"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":1235,"path":1236,"stem":1237},"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":1239,"path":1240,"stem":1241},"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":1243,"path":1244,"stem":1245},"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":1247,"path":1248,"stem":1249},"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":1251,"path":1252,"stem":1253},"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":1255,"path":1256,"stem":1257},"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":1259,"path":1260,"stem":1261},"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":1263,"path":1264,"stem":1265},"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":1267,"path":1268,"stem":1269,"children":1270},"Expressions (EXP)","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fexpressions-exp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F07.expressions-exp\u002F01.index",[1271,1272,1276,1280,1284,1288,1292,1296,1300,1304,1308,1312,1316,1320,1324],{"title":1267,"path":1268,"stem":1269},{"title":1273,"path":1274,"stem":1275},"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":1277,"path":1278,"stem":1279},"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":1281,"path":1282,"stem":1283},"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":1285,"path":1286,"stem":1287},"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":1289,"path":1290,"stem":1291},"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":1293,"path":1294,"stem":1295},"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":1297,"path":1298,"stem":1299},"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":1301,"path":1302,"stem":1303},"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":1305,"path":1306,"stem":1307},"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":1309,"path":1310,"stem":1311},"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":1313,"path":1314,"stem":1315},"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":1317,"path":1318,"stem":1319},"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":1321,"path":1322,"stem":1323},"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":1325,"path":1326,"stem":1327},"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":1329,"path":1330,"stem":1331,"children":1332},"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",[1333,1334,1338],{"title":1329,"path":1330,"stem":1331},{"title":1335,"path":1336,"stem":1337},"FIO50-CPP. Do not alternately input and output from a file stream without an intervening positioning call","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Finput-output-fio\u002Ffio50-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F08.input-output-fio\u002F2.fio50-cpp",{"title":1339,"path":1340,"stem":1341},"FIO51-CPP. Close files when they are no longer needed","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Finput-output-fio\u002Ffio51-cpp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F08.input-output-fio\u002F3.fio51-cpp",{"title":1343,"path":1344,"stem":1345,"children":1346},"Integers (INT)","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fintegers-int","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F09.integers-int\u002F1.index",[1347,1348],{"title":1343,"path":1344,"stem":1345},{"title":1349,"path":1350,"stem":1351},"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":1353,"path":1354,"stem":1355,"children":1356},"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",[1357,1358,1362,1366,1370,1374,1378,1382,1386],{"title":1353,"path":1354,"stem":1355},{"title":1359,"path":1360,"stem":1361},"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":1363,"path":1364,"stem":1365},"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":1367,"path":1368,"stem":1369},"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":1371,"path":1372,"stem":1373},"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":1375,"path":1376,"stem":1377},"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":1379,"path":1380,"stem":1381},"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":1383,"path":1384,"stem":1385},"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":1387,"path":1388,"stem":1389},"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":1391,"path":1392,"stem":1393,"children":1394},"Miscellaneous (MSC)","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fmiscellaneous-msc","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F11.miscellaneous-msc\u002F1.index",[1395,1396,1398,1402,1406,1407],{"title":1391,"path":1392,"stem":1393},{"title":393,"path":392,"stem":1397},"5.sei-cert-cpp-coding-standard\u002F3.rules\u002F11.miscellaneous-msc\u002F2.msc51-cpp",{"title":1399,"path":1400,"stem":1401},"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":1403,"path":1404,"stem":1405},"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":977,"path":978,"stem":979},{"title":33,"path":971,"stem":973},{"title":981,"path":982,"stem":983,"children":1409},[1410,1411,1415,1419,1423,1427,1431,1435,1439,1443],{"title":981,"path":982,"stem":983},{"title":1412,"path":1413,"stem":1414},"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":1416,"path":1417,"stem":1418},"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":1420,"path":1421,"stem":1422},"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":1424,"path":1425,"stem":1426},"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":1428,"path":1429,"stem":1430},"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":1432,"path":1433,"stem":1434},"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":1436,"path":1437,"stem":1438},"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":1440,"path":1441,"stem":1442},"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":1444,"path":1445,"stem":1446},"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":1448,"path":1449,"stem":1450,"children":1451},"Back Matter","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F1.index",[1452,1453,1457,1460,1633,1646],{"title":1448,"path":1449,"stem":1450},{"title":1454,"path":1455,"stem":1456},"AA. Bibliography","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Faa-bibliography","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F2.aa-bibliography",{"title":1458,"path":800,"stem":1459},"BB. Definitions","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F3.bb-definitions",{"title":1461,"path":1462,"stem":1463,"children":1464},"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",[1465,1466,1468,1472,1474,1478,1480,1484,1488,1492,1496,1500,1504,1507,1511,1515,1519,1522,1526,1530,1534,1538,1542,1544,1548,1550,1554,1557,1561,1564,1568,1570,1574,1578,1582,1586,1590,1593,1597,1599,1603,1605,1609,1613,1617,1621,1625,1629],{"title":1461,"path":1462,"stem":1463},{"title":504,"path":503,"stem":1467},"5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F02.astree",{"title":1469,"path":1470,"stem":1471},"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":528,"path":527,"stem":1473},"5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F04.axivion-suite",{"title":1475,"path":1476,"stem":1477},"Axivion Suite_V","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Faxivion-suite_v","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F05.axivion-suite_v",{"title":549,"path":548,"stem":1479},"5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F06.clang",{"title":1481,"path":1482,"stem":1483},"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":1485,"path":1486,"stem":1487},"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":1489,"path":1490,"stem":1491},"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":1493,"path":1494,"stem":1495},"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":1497,"path":1498,"stem":1499},"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":1501,"path":1502,"stem":1503},"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":574,"path":1505,"stem":1506},"\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fcodesonar","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F13.codesonar",{"title":1508,"path":1509,"stem":1510},"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":1512,"path":1513,"stem":1514},"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":1516,"path":1517,"stem":1518},"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":628,"path":1520,"stem":1521},"\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":1523,"path":1524,"stem":1525},"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":1527,"path":1528,"stem":1529},"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":1531,"path":1532,"stem":1533},"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":1535,"path":1536,"stem":1537},"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":1539,"path":1540,"stem":1541},"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":650,"path":649,"stem":1543},"5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F23.helix-qac",{"title":1545,"path":1546,"stem":1547},"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":671,"path":670,"stem":1549},"5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F25.klocwork",{"title":1551,"path":1552,"stem":1553},"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":1555,"path":690,"stem":1556},"LDRA","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F27.ldra",{"title":1558,"path":1559,"stem":1560},"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":1562,"path":712,"stem":1563},"Parasoft","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F29.parasoft",{"title":1565,"path":1566,"stem":1567},"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":735,"path":734,"stem":1569},"5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F31.polyspace-bug-finder",{"title":1571,"path":1572,"stem":1573},"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":1575,"path":1576,"stem":1577},"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":1579,"path":1580,"stem":1581},"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":1583,"path":1584,"stem":1585},"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":1587,"path":1588,"stem":1589},"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":1591,"path":613,"stem":1592},"Rose","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F37.rose",{"title":1594,"path":1595,"stem":1596},"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":758,"path":757,"stem":1598},"5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F39.rulechecker",{"title":1600,"path":1601,"stem":1602},"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":777,"path":776,"stem":1604},"5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F41.security-reviewer-static-reviewer",{"title":1606,"path":1607,"stem":1608},"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":1610,"path":1611,"stem":1612},"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":1614,"path":1615,"stem":1616},"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":1618,"path":1619,"stem":1620},"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":1622,"path":1623,"stem":1624},"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":1626,"path":1627,"stem":1628},"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":1630,"path":1631,"stem":1632},"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":1634,"path":1635,"stem":1636,"children":1637},"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",[1638,1639,1643],{"title":1634,"path":1635,"stem":1636},{"title":1640,"path":1641,"stem":1642},"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":869,"path":1644,"stem":1645},"\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",1788380823173]