[{"data":1,"prerenderedAt":1682},["ShallowReactive",2],{"global-navigation":3,"page-\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fdeclarations-and-initialization-dcl\u002Fdcl52-cpp":28,"surround-\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fdeclarations-and-initialization-dcl\u002Fdcl52-cpp":979,"sidebar-sei-cert-cpp-coding-standard":986},[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":965,"extension":966,"meta":967,"navigation":7,"path":975,"seo":976,"stem":977,"__hash__":978},"content\u002F5.sei-cert-cpp-coding-standard\u002F3.rules\u002F05.declarations-and-initialization-dcl\u002F04.dcl52-cpp.md","DCL52-CPP. Never qualify a reference type with const or volatile",{"type":32,"value":33,"toc":952},"minimark",[34,38,53,68,76,82,112,115,140,166,171,187,292,297,305,328,331,340,344,351,369,372,389,471,475,481,555,559,569,635,639,867,871,885,889,923,926,948],[35,36,30],"h1",{"id":37},"dcl52-cpp-never-qualify-a-reference-type-with-const-or-volatile",[39,40,41,42,46,47,52],"p",{},"C++ does not allow you to change the value of a reference type, effectively treating all references as being ",[43,44,45],"code",{},"const"," qualified. The C++ Standard, [dcl.ref], paragraph 1 [ ",[48,49,51],"a",{"href":50},"\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Faa-bibliography#AA.Bibliography-ISO\u002FIEC14882-2014","ISO\u002FIEC 14882-2014"," ], states the following:",[54,55,56],"blockquote",{},[39,57,58,59,63,64,67],{},"Cv-qualified references are ill-formed except when the cv-qualifiers are introduced through the use of a ",[60,61,62],"em",{},"typedef-name"," (7.1.3, 14.1) or ",[60,65,66],{},"decltype-specifier"," (7.1.6.2), in which case the cv-qualifiers are ignored.",[39,69,70,71,75],{},"Thus, C++ prohibits or ignores the ",[48,72,74],{"href":73},"\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fbb-definitions#BB.Definitions-cvqualify","cv-qualification"," of a reference type. Only a value of non-reference type may be cv-qualified.",[39,77,78,79,81],{},"When attempting to ",[43,80,45],{}," -qualify a type as part of a declaration that uses reference type, a programmer may accidentally write",[83,84,86],"code-block",{"quality":85},"bad",[87,88,93],"pre",{"className":89,"code":90,"language":91,"meta":92,"style":92},"language-cpp shiki shiki-themes github-light github-dark monokai","char &const p;\n","cpp","",[43,94,95],{"__ignoreMap":92},[96,97,100,104,108],"span",{"class":98,"line":99},"line",1,[96,101,103],{"class":102},"sq6CD","char",[96,105,107],{"class":106},"sC2Qs"," &const",[96,109,111],{"class":110},"sMOD_"," p;\n",[39,113,114],{},"instead of",[83,116,118],{"quality":117},"good",[87,119,121],{"className":89,"code":120,"language":91,"meta":92,"style":92},"char const &p; \u002F\u002F Or: const char &p;\n",[43,122,123],{"__ignoreMap":92},[96,124,125,127,130,133,136],{"class":98,"line":99},[96,126,103],{"class":102},[96,128,129],{"class":106}," const",[96,131,132],{"class":106}," &",[96,134,135],{"class":110},"p;",[96,137,139],{"class":138},"s8-w5"," \u002F\u002F Or: const char &p;\n",[39,141,142,143,147,148,152,153,157,158,162,163,165],{},"Do not attempt to cv-qualify a reference type because it results in ",[48,144,146],{"href":145},"\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fbb-definitions#BB.Definitions-undefinedbehavior","undefined behavior"," . A ",[48,149,151],{"href":150},"\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fbb-definitions#BB.Definitions-conformingprogram","conforming"," compiler is required to issue a ",[48,154,156],{"href":155},"\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fbb-definitions#BB.Definitions-diagnosticmessage","diagnostic message"," . However, if the compiler does not emit a ",[48,159,161],{"href":160},"\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fbb-definitions#BB.Definitions-fataldiagnostic","fatal diagnostic"," , the program may produce surprising results, such as allowing the character referenced by ",[43,164,39],{}," to be mutated.",[167,168,170],"h2",{"id":169},"noncompliant-code-example","Noncompliant Code Example",[39,172,173,174,176,177,179,180,182,183,186],{},"In this noncompliant code example, a ",[43,175,45],{}," -qualified reference to a ",[43,178,103],{}," is formed instead of a reference to a ",[43,181,45],{}," -qualified ",[43,184,185],{},"char."," This results in undefined behavior.",[83,188,189],{"quality":85},[87,190,192],{"className":89,"code":191,"language":91,"meta":92,"style":92},"#include \u003Ciostream>\n \nvoid f(char c) {\n  char &const p = c;\n  p = 'p';\n  std::cout \u003C\u003C c \u003C\u003C std::endl;\n}\n",[43,193,194,203,209,231,248,262,286],{"__ignoreMap":92},[96,195,196,199],{"class":98,"line":99},[96,197,198],{"class":106},"#include",[96,200,202],{"class":201},"sstjo"," \u003Ciostream>\n",[96,204,206],{"class":98,"line":205},2,[96,207,208],{"class":110}," \n",[96,210,212,215,219,222,224,228],{"class":98,"line":211},3,[96,213,214],{"class":102},"void",[96,216,218],{"class":217},"srTi1"," f",[96,220,221],{"class":110},"(",[96,223,103],{"class":102},[96,225,227],{"class":226},"sTHNf"," c",[96,229,230],{"class":110},") {\n",[96,232,234,237,239,242,245],{"class":98,"line":233},4,[96,235,236],{"class":102},"  char",[96,238,107],{"class":106},[96,240,241],{"class":110}," p ",[96,243,244],{"class":106},"=",[96,246,247],{"class":110}," c;\n",[96,249,251,254,256,259],{"class":98,"line":250},5,[96,252,253],{"class":110},"  p ",[96,255,244],{"class":106},[96,257,258],{"class":201}," 'p'",[96,260,261],{"class":110},";\n",[96,263,265,269,272,275,278,280,283],{"class":98,"line":264},6,[96,266,268],{"class":267},"sz2Vg","  std",[96,270,271],{"class":110},"::cout ",[96,273,274],{"class":106},"\u003C\u003C",[96,276,277],{"class":110}," c ",[96,279,274],{"class":106},[96,281,282],{"class":267}," std",[96,284,285],{"class":110},"::endl;\n",[96,287,289],{"class":98,"line":288},7,[96,290,291],{"class":110},"}\n",[293,294,296],"h3",{"id":295},"implementation-details-msvc","Implementation Details (MSVC)",[39,298,299,300,304],{},"With ",[48,301,303],{"href":302},"\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fbb-definitions#BB.Definitions-msvc","Microsoft Visual Studio"," 2015, this code compiles successfully with a warning diagnostic.",[87,306,310],{"className":307,"code":308,"language":309,"meta":92,"style":92},"language-java shiki shiki-themes github-light github-dark monokai","warning C4227: anachronism used : qualifiers on reference are ignored\n","java",[43,311,312],{"__ignoreMap":92},[96,313,314,317,320,323,325],{"class":98,"line":99},[96,315,316],{"class":110},"warning C4227",[96,318,319],{"class":106},":",[96,321,322],{"class":110}," anachronism used ",[96,324,319],{"class":106},[96,326,327],{"class":110}," qualifiers on reference are ignored\n",[39,329,330],{},"When run, the code outputs the following.",[87,332,334],{"className":307,"code":333,"language":309,"meta":92,"style":92},"p\n",[43,335,336],{"__ignoreMap":92},[96,337,338],{"class":98,"line":99},[96,339,333],{"class":110},[293,341,343],{"id":342},"implementation-details-clang","Implementation Details (Clang)",[39,345,299,346,350],{},[48,347,349],{"href":348},"\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fbb-definitions#BB.Definitions-clang","Clang"," 3.9, this code produces a fatal diagnostic.",[87,352,354],{"className":307,"code":353,"language":309,"meta":92,"style":92},"error: 'const' qualifier may not be applied to a reference\n",[43,355,356],{"__ignoreMap":92},[96,357,358,361,363,366],{"class":98,"line":99},[96,359,360],{"class":110},"error",[96,362,319],{"class":106},[96,364,365],{"class":201}," 'const'",[96,367,368],{"class":110}," qualifier may not be applied to a reference\n",[167,370,170],{"id":371},"noncompliant-code-example-1",[39,373,374,375,377,378,380,381,383,384,388],{},"This noncompliant code example correctly declares ",[43,376,39],{}," to be a reference to a const-qualified ",[43,379,103],{}," . The subsequent modification of ",[43,382,39],{}," makes the program ",[48,385,387],{"href":386},"\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fbb-definitions#BB.Definitions-ill-formed","ill-formed"," .",[83,390,391],{"quality":85},[87,392,394],{"className":89,"code":393,"language":91,"meta":92,"style":92},"#include \u003Ciostream>\n \nvoid f(char c) {\n  const char &p = c;\n  p = 'p'; \u002F\u002F Error: read-only variable is not assignable\n  std::cout \u003C\u003C c \u003C\u003C std::endl;\n}\n",[43,395,396,402,406,420,437,451,467],{"__ignoreMap":92},[96,397,398,400],{"class":98,"line":99},[96,399,198],{"class":106},[96,401,202],{"class":201},[96,403,404],{"class":98,"line":205},[96,405,208],{"class":110},[96,407,408,410,412,414,416,418],{"class":98,"line":211},[96,409,214],{"class":102},[96,411,218],{"class":217},[96,413,221],{"class":110},[96,415,103],{"class":102},[96,417,227],{"class":226},[96,419,230],{"class":110},[96,421,422,425,428,430,433,435],{"class":98,"line":233},[96,423,424],{"class":106},"  const",[96,426,427],{"class":102}," char",[96,429,132],{"class":106},[96,431,432],{"class":110},"p ",[96,434,244],{"class":106},[96,436,247],{"class":110},[96,438,439,441,443,445,448],{"class":98,"line":250},[96,440,253],{"class":110},[96,442,244],{"class":106},[96,444,258],{"class":201},[96,446,447],{"class":110},";",[96,449,450],{"class":138}," \u002F\u002F Error: read-only variable is not assignable\n",[96,452,453,455,457,459,461,463,465],{"class":98,"line":264},[96,454,268],{"class":267},[96,456,271],{"class":110},[96,458,274],{"class":106},[96,460,277],{"class":110},[96,462,274],{"class":106},[96,464,282],{"class":267},[96,466,285],{"class":110},[96,468,469],{"class":98,"line":288},[96,470,291],{"class":110},[167,472,474],{"id":473},"compliant-solution","Compliant Solution",[39,476,477,478,480],{},"This compliant solution removes the ",[43,479,45],{}," qualifier.",[83,482,483],{"quality":117},[87,484,486],{"className":89,"code":485,"language":91,"meta":92,"style":92},"#include \u003Ciostream>\n \nvoid f(char c) {\n  char &p = c;\n  p = 'p';\n  std::cout \u003C\u003C c \u003C\u003C std::endl;\n}\n",[43,487,488,494,499,513,525,535,551],{"__ignoreMap":92},[96,489,490,492],{"class":98,"line":99},[96,491,198],{"class":106},[96,493,202],{"class":201},[96,495,496],{"class":98,"line":205},[96,497,498],{"class":110}," \n",[96,500,501,503,505,507,509,511],{"class":98,"line":211},[96,502,214],{"class":102},[96,504,218],{"class":217},[96,506,221],{"class":110},[96,508,103],{"class":102},[96,510,227],{"class":226},[96,512,230],{"class":110},[96,514,515,517,519,521,523],{"class":98,"line":233},[96,516,236],{"class":102},[96,518,132],{"class":106},[96,520,432],{"class":110},[96,522,244],{"class":106},[96,524,247],{"class":110},[96,526,527,529,531,533],{"class":98,"line":250},[96,528,253],{"class":110},[96,530,244],{"class":106},[96,532,258],{"class":201},[96,534,261],{"class":110},[96,536,537,539,541,543,545,547,549],{"class":98,"line":264},[96,538,268],{"class":267},[96,540,271],{"class":110},[96,542,274],{"class":106},[96,544,277],{"class":110},[96,546,274],{"class":106},[96,548,282],{"class":267},[96,550,285],{"class":110},[96,552,553],{"class":98,"line":288},[96,554,291],{"class":110},[167,556,558],{"id":557},"risk-assessment","Risk Assessment",[39,560,561,562,564,565,568],{},"A ",[43,563,45],{}," or ",[43,566,567],{},"volatile"," reference type may result in undefined behavior instead of a fatal diagnostic, causing unexpected values to be stored and leading to possible data integrity violations.",[570,571,572,573,572,603],"table",{},"\n  ",[574,575,576,577,572],"thead",{},"\n    ",[578,579,580,581,580,585,580,588,580,591,580,594,580,597,580,600,576],"tr",{},"\n      ",[582,583,584],"th",{},"Rule",[582,586,587],{},"Severity",[582,589,590],{},"Likelihood",[582,592,593],{},"Detectable",[582,595,596],{},"Repairable",[582,598,599],{},"Priority",[582,601,602],{},"Level",[604,605,576,606,572],"tbody",{},[578,607,580,608,580,612,580,615,580,618,580,621,580,623,580,630,576],{},[609,610,611],"td",{},"DCL52-CPP",[609,613,614],{},"Low",[609,616,617],{},"Unlikely",[609,619,620],{},"Yes",[609,622,620],{},[609,624,626],{"style":625},"color: #27ae60;",[627,628,629],"b",{},"P3",[609,631,632],{"style":625},[627,633,634],{},"L3",[293,636,638],{"id":637},"automated-detection","Automated Detection",[570,640,643,669],{"className":641},[642],"wrapped",[574,644,645],{},[578,646,649,654,659,664],{"className":647},[648],"header",[582,650,651],{},[39,652,653],{},"Tool",[582,655,656],{},[39,657,658],{},"Version",[582,660,661],{},[39,662,663],{},"Checker",[582,665,666],{},[39,667,668],{},"Description",[604,670,671,702,729,752,778,819,840],{},[578,672,675,681,691,697],{"className":673},[674],"odd",[609,676,677],{},[48,678,680],{"href":679},"\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Faxivion-bauhaus-suite","Axivion Bauhaus Suite",[609,682,683],{},[684,685,688],"div",{"className":686},[687],"content-wrapper",[39,689,690],{},"7.2.0",[609,692,693],{},[694,695,696],"strong",{},"CertC++-DCL52",[609,698,699],{},[700,701],"br",{},[578,703,706,712,720,725],{"className":704},[705],"even",[609,707,708],{},[48,709,711],{"href":710},"\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fhelix-qac","Helix QAC",[609,713,714],{},[684,715,717],{"className":716},[687],[39,718,719],{},"2025.2",[609,721,722],{},[694,723,724],{},"C++0014",[609,726,727],{},[700,728],{},[578,730,732,738,743,748],{"className":731},[674],[609,733,734],{},[48,735,737],{"href":736},"\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fklocwork","Klocwork",[609,739,740],{},[684,741,719],{"className":742},[687],[609,744,745],{},[694,746,747],{},"CERT.DCL.REF_TYPE.CONST_OR_VOLATILE",[609,749,750],{},[700,751],{},[578,753,755,761,768,773],{"className":754},[705],[609,756,757],{},[48,758,760],{"href":759},"\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fparasoft","Parasoft C\u002FC++test",[609,762,763],{},[684,764,766],{"className":765},[687],[39,767,719],{},[609,769,770],{},[694,771,772],{},"CERT_CPP-DCL52-a",[609,774,775],{},[39,776,777],{},"Never qualify a reference type with 'const' or 'volatile'",[578,779,781,787,795,801],{"className":780},[674],[609,782,783],{},[48,784,786],{"href":785},"\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fpolyspace-bug-finder","Polyspace Bug Finder",[609,788,789],{},[684,790,792],{"className":791},[687],[39,793,794],{},"R2025b",[609,796,797],{},[48,798,800],{"href":799},"https:\u002F\u002Fwww.mathworks.com\u002Fhelp\u002Fbugfinder\u002Fref\u002Fcertcdcl52cpp.html","CERT C++: DCL52-CPP",[609,802,803,806,816],{},[39,804,805],{},"Checks for:",[807,808,809,813],"ul",{},[810,811,812],"li",{},"const-qualified reference types",[810,814,815],{},"Modification of const-qualified reference types",[39,817,818],{},"Rule fully covered.",[578,820,822,827,833,837],{"className":821},[705],[609,823,824],{},[48,825,349],{"href":826},"\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fclang",[609,828,829],{},[684,830,832],{"className":831},[687],"3.9",[609,834,835],{},[700,836],{},[609,838,839],{},"Clang checks for violations of this rule and produces an error without the need to specify any special flags or options .",[578,841,843,849,855,863],{"className":842},[674],[609,844,845],{},[48,846,848],{"href":847},"\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fsonarqube-ccpp-plugin","SonarQube C\u002FC++ Plugin",[609,850,851],{},[684,852,854],{"className":853},[687],"4.10",[609,856,857],{},[694,858,859],{},[48,860,862],{"href":861},"https:\u002F\u002Fwww.sonarsource.com\u002Fproducts\u002Fcodeanalyzers\u002Fsonarcfamilyforcpp\u002Frules-cpp.html#RSPEC-3708","S3708",[609,864,865],{},[700,866],{},[293,868,870],{"id":869},"related-vulnerabilities","Related Vulnerabilities",[39,872,873,874,878,879,388],{},"Search for ",[48,875,877],{"href":876},"\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fbb-definitions#BB.Definitions-vulnerability","vulnerabilities"," resulting from the violation of this rule on the ",[48,880,884],{"href":881,"rel":882},"https:\u002F\u002Fwww.kb.cert.org\u002Fvulnotes\u002Fbymetric?searchview&query=FIELD+KEYWORDS+contains+DCL33-CPP",[883],"nofollow","CERT website",[167,886,888],{"id":887},"bibliography","Bibliography",[570,890,891,899],{},[574,892,893],{},[578,894,895,897],{},[582,896],{},[582,898],{},[604,900,901,914],{},[578,902,903,911],{},[609,904,905,906,910],{},"[ ",[48,907,909],{"href":908},"\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Faa-bibliography#AA.Bibliography-Dewhurst02","Dewhurst 2002"," ]",[609,912,913],{},"Gotcha #5, \"Misunderstanding References\"",[578,915,916,920],{},[609,917,905,918,910],{},[48,919,51],{"href":50},[609,921,922],{},"Subclause 8.3.2, \"References\"",[924,925],"hr",{},[39,927,928,935,936,935,942],{},[48,929,931],{"href":930},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fdeclarations-and-initialization-dcl\u002Fdcl51-cpp",[932,933],"img",{"src":934},"\u002Fattachments\u002F88046682\u002F88480621.png"," ",[48,937,939],{"href":938},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fdeclarations-and-initialization-dcl\u002F",[932,940],{"src":941},"\u002Fattachments\u002F88046682\u002F88475556.png",[48,943,945],{"href":944},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fdeclarations-and-initialization-dcl\u002Fdcl53-cpp",[932,946],{"src":947},"\u002Fattachments\u002F88046682\u002F88475555.png",[949,950,951],"style",{},"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 .sC2Qs, html code.shiki .sC2Qs{--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-sepia:#F92672}html pre.shiki code .sMOD_, html code.shiki .sMOD_{--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-sepia:#F8F8F2}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 .s8-w5, html code.shiki .s8-w5{--shiki-default:#6A737D;--shiki-dark:#6A737D;--shiki-sepia:#88846F}html pre.shiki code .sstjo, html code.shiki .sstjo{--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-sepia:#E6DB74}html pre.shiki code .srTi1, html code.shiki .srTi1{--shiki-default:#6F42C1;--shiki-dark:#B392F0;--shiki-sepia:#A6E22E}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 .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}",{"title":92,"searchDepth":205,"depth":205,"links":953},[954,958,959,960,964],{"id":169,"depth":205,"text":170,"children":955},[956,957],{"id":295,"depth":211,"text":296},{"id":342,"depth":211,"text":343},{"id":371,"depth":205,"text":170},{"id":473,"depth":205,"text":474},{"id":557,"depth":205,"text":558,"children":961},[962,963],{"id":637,"depth":211,"text":638},{"id":869,"depth":211,"text":870},{"id":887,"depth":205,"text":888},"C++ does not allow you to change the value of a reference type, effectively treating all references as being const qualified. The C++ Standard, [dcl.ref], paragraph 1 [ ISO\u002FIEC 14882-2014 ], states the following:","md",{"tags":968},[969,970,971,972,973,974],"review","dcl","ptc","review-dms","rule","review-ajb","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fdeclarations-and-initialization-dcl\u002Fdcl52-cpp",{"title":30,"description":965},"5.sei-cert-cpp-coding-standard\u002F3.rules\u002F05.declarations-and-initialization-dcl\u002F04.dcl52-cpp","-RlPO9Fg9MybU6thG3sRdgVuSN53eivkhycZNpFraaE",[980,983],{"title":981,"path":930,"stem":982,"children":-1},"DCL51-CPP. Do not declare or define a reserved identifier","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F05.declarations-and-initialization-dcl\u002F03.dcl51-cpp",{"title":984,"path":944,"stem":985,"children":-1},"DCL53-CPP. Do not write syntactically ambiguous declarations","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F05.declarations-and-initialization-dcl\u002F05.dcl53-cpp",[987],{"title":988,"path":989,"stem":990,"children":991},"SEI CERT C++ Coding Standard","\u002Fsei-cert-cpp-coding-standard","5.sei-cert-cpp-coding-standard\u002F1.index",[992,993,1060,1455,1668,1678],{"title":988,"path":989,"stem":990},{"title":994,"path":995,"stem":996,"children":997},"Front Matter","\u002Fsei-cert-cpp-coding-standard\u002Ffront-matter","5.sei-cert-cpp-coding-standard\u002F2.front-matter\u002F1.index",[998,999],{"title":994,"path":995,"stem":996},{"title":1000,"path":1001,"stem":1002,"children":1003},"Introduction","\u002Fsei-cert-cpp-coding-standard\u002Ffront-matter\u002Fintroduction","5.sei-cert-cpp-coding-standard\u002F2.front-matter\u002F2.introduction\u002F01.index",[1004,1005,1009,1013,1017,1021,1025,1029,1033,1037,1041,1045,1049,1053,1057],{"title":1000,"path":1001,"stem":1002},{"title":1006,"path":1007,"stem":1008},"Scope","\u002Fsei-cert-cpp-coding-standard\u002Ffront-matter\u002Fintroduction\u002Fscope","5.sei-cert-cpp-coding-standard\u002F2.front-matter\u002F2.introduction\u002F02.scope",{"title":1010,"path":1011,"stem":1012},"Audience","\u002Fsei-cert-cpp-coding-standard\u002Ffront-matter\u002Fintroduction\u002Faudience","5.sei-cert-cpp-coding-standard\u002F2.front-matter\u002F2.introduction\u002F03.audience",{"title":1014,"path":1015,"stem":1016},"Usage","\u002Fsei-cert-cpp-coding-standard\u002Ffront-matter\u002Fintroduction\u002Fusage","5.sei-cert-cpp-coding-standard\u002F2.front-matter\u002F2.introduction\u002F04.usage",{"title":1018,"path":1019,"stem":1020},"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":1022,"path":1023,"stem":1024},"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":1026,"path":1027,"stem":1028},"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":1030,"path":1031,"stem":1032},"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":1034,"path":1035,"stem":1036},"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":1038,"path":1039,"stem":1040},"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":1042,"path":1043,"stem":1044},"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":1046,"path":1047,"stem":1048},"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":1050,"path":1051,"stem":1052},"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":1054,"path":1055,"stem":1056},"Acknowledgments","\u002Fsei-cert-cpp-coding-standard\u002Ffront-matter\u002Fintroduction\u002Facknowledgments","5.sei-cert-cpp-coding-standard\u002F2.front-matter\u002F2.introduction\u002F14.acknowledgments",{"title":638,"path":1058,"stem":1059},"\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":1061,"path":1062,"stem":1063,"children":1064},"Rules","\u002Fsei-cert-cpp-coding-standard\u002Frules","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F01.index",[1065,1066,1088,1122,1164,1205,1263,1325,1339,1349,1387,1413],{"title":1061,"path":1062,"stem":1063},{"title":1067,"path":1068,"stem":1069,"children":1070},"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",[1071,1072,1076,1080,1084],{"title":1067,"path":1068,"stem":1069},{"title":1073,"path":1074,"stem":1075},"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":1077,"path":1078,"stem":1079},"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":1081,"path":1082,"stem":1083},"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":1085,"path":1086,"stem":1087},"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":1089,"path":1090,"stem":1091,"children":1092},"Concurrency (CON)","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fconcurrency-con","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F03.concurrency-con\u002F1.index",[1093,1094,1098,1102,1106,1110,1114,1118],{"title":1089,"path":1090,"stem":1091},{"title":1095,"path":1096,"stem":1097},"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":1099,"path":1100,"stem":1101},"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":1103,"path":1104,"stem":1105},"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":1107,"path":1108,"stem":1109},"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":1111,"path":1112,"stem":1113},"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":1115,"path":1116,"stem":1117},"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":1119,"path":1120,"stem":1121},"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":1123,"path":1124,"stem":1125,"children":1126},"Containers (CTR)","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fcontainers-ctr","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F04.containers-ctr\u002F01.index",[1127,1128,1132,1136,1140,1144,1148,1152,1156,1160],{"title":1123,"path":1124,"stem":1125},{"title":1129,"path":1130,"stem":1131},"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":1133,"path":1134,"stem":1135},"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":1137,"path":1138,"stem":1139},"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":1141,"path":1142,"stem":1143},"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":1145,"path":1146,"stem":1147},"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":1149,"path":1150,"stem":1151},"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":1153,"path":1154,"stem":1155},"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":1157,"path":1158,"stem":1159},"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":1161,"path":1162,"stem":1163},"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":1165,"path":1166,"stem":1167,"children":1168},"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",[1169,1170,1174,1175,1176,1177,1181,1185,1189,1193,1197,1201],{"title":1165,"path":1166,"stem":1167},{"title":1171,"path":1172,"stem":1173},"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":981,"path":930,"stem":982},{"title":30,"path":975,"stem":977},{"title":984,"path":944,"stem":985},{"title":1178,"path":1179,"stem":1180},"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":1182,"path":1183,"stem":1184},"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":1186,"path":1187,"stem":1188},"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":1190,"path":1191,"stem":1192},"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":1194,"path":1195,"stem":1196},"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":1198,"path":1199,"stem":1200},"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":1202,"path":1203,"stem":1204},"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":1206,"path":1207,"stem":1208,"children":1209},"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",[1210,1211,1215,1219,1223,1227,1231,1235,1239,1243,1247,1251,1255,1259],{"title":1206,"path":1207,"stem":1208},{"title":1212,"path":1213,"stem":1214},"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":1216,"path":1217,"stem":1218},"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":1220,"path":1221,"stem":1222},"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":1224,"path":1225,"stem":1226},"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":1228,"path":1229,"stem":1230},"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":1232,"path":1233,"stem":1234},"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":1236,"path":1237,"stem":1238},"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":1240,"path":1241,"stem":1242},"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":1244,"path":1245,"stem":1246},"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":1248,"path":1249,"stem":1250},"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":1252,"path":1253,"stem":1254},"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":1256,"path":1257,"stem":1258},"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":1260,"path":1261,"stem":1262},"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":1264,"path":1265,"stem":1266,"children":1267},"Expressions (EXP)","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fexpressions-exp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F07.expressions-exp\u002F01.index",[1268,1269,1273,1277,1281,1285,1289,1293,1297,1301,1305,1309,1313,1317,1321],{"title":1264,"path":1265,"stem":1266},{"title":1270,"path":1271,"stem":1272},"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":1274,"path":1275,"stem":1276},"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":1278,"path":1279,"stem":1280},"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":1282,"path":1283,"stem":1284},"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":1286,"path":1287,"stem":1288},"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":1290,"path":1291,"stem":1292},"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":1294,"path":1295,"stem":1296},"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":1298,"path":1299,"stem":1300},"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":1302,"path":1303,"stem":1304},"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":1306,"path":1307,"stem":1308},"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":1310,"path":1311,"stem":1312},"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":1314,"path":1315,"stem":1316},"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":1318,"path":1319,"stem":1320},"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":1322,"path":1323,"stem":1324},"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":1326,"path":1327,"stem":1328,"children":1329},"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",[1330,1331,1335],{"title":1326,"path":1327,"stem":1328},{"title":1332,"path":1333,"stem":1334},"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":1336,"path":1337,"stem":1338},"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":1340,"path":1341,"stem":1342,"children":1343},"Integers (INT)","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fintegers-int","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F09.integers-int\u002F1.index",[1344,1345],{"title":1340,"path":1341,"stem":1342},{"title":1346,"path":1347,"stem":1348},"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":1350,"path":1351,"stem":1352,"children":1353},"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",[1354,1355,1359,1363,1367,1371,1375,1379,1383],{"title":1350,"path":1351,"stem":1352},{"title":1356,"path":1357,"stem":1358},"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":1360,"path":1361,"stem":1362},"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":1364,"path":1365,"stem":1366},"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":1368,"path":1369,"stem":1370},"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":1372,"path":1373,"stem":1374},"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":1376,"path":1377,"stem":1378},"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":1380,"path":1381,"stem":1382},"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":1384,"path":1385,"stem":1386},"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":1388,"path":1389,"stem":1390,"children":1391},"Miscellaneous (MSC)","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fmiscellaneous-msc","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F11.miscellaneous-msc\u002F1.index",[1392,1393,1397,1401,1405,1409],{"title":1388,"path":1389,"stem":1390},{"title":1394,"path":1395,"stem":1396},"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":1398,"path":1399,"stem":1400},"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":1402,"path":1403,"stem":1404},"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":1406,"path":1407,"stem":1408},"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":1410,"path":1411,"stem":1412},"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":1414,"path":1415,"stem":1416,"children":1417},"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",[1418,1419,1423,1427,1431,1435,1439,1443,1447,1451],{"title":1414,"path":1415,"stem":1416},{"title":1420,"path":1421,"stem":1422},"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":1424,"path":1425,"stem":1426},"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":1428,"path":1429,"stem":1430},"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":1432,"path":1433,"stem":1434},"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":1436,"path":1437,"stem":1438},"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":1440,"path":1441,"stem":1442},"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":1444,"path":1445,"stem":1446},"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":1448,"path":1449,"stem":1450},"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":1452,"path":1453,"stem":1454},"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":1456,"path":1457,"stem":1458,"children":1459},"Back Matter","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F1.index",[1460,1461,1465,1469,1650,1664],{"title":1456,"path":1457,"stem":1458},{"title":1462,"path":1463,"stem":1464},"AA. Bibliography","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Faa-bibliography","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F2.aa-bibliography",{"title":1466,"path":1467,"stem":1468},"BB. Definitions","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fbb-definitions","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F3.bb-definitions",{"title":1470,"path":1471,"stem":1472,"children":1473},"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",[1474,1475,1479,1483,1485,1489,1491,1495,1499,1503,1507,1511,1515,1519,1523,1527,1531,1535,1539,1543,1547,1551,1555,1557,1561,1563,1567,1571,1575,1578,1582,1584,1588,1592,1596,1600,1604,1608,1612,1616,1620,1624,1628,1632,1636,1638,1642,1646],{"title":1470,"path":1471,"stem":1472},{"title":1476,"path":1477,"stem":1478},"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":1480,"path":1481,"stem":1482},"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":680,"path":679,"stem":1484},"5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F04.axivion-bauhaus-suite",{"title":1486,"path":1487,"stem":1488},"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":349,"path":826,"stem":1490},"5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F06.clang",{"title":1492,"path":1493,"stem":1494},"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":1496,"path":1497,"stem":1498},"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":1500,"path":1501,"stem":1502},"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":1504,"path":1505,"stem":1506},"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":1508,"path":1509,"stem":1510},"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":1512,"path":1513,"stem":1514},"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":1516,"path":1517,"stem":1518},"CodeSonar","\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":1520,"path":1521,"stem":1522},"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":1524,"path":1525,"stem":1526},"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":1528,"path":1529,"stem":1530},"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":1532,"path":1533,"stem":1534},"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":1536,"path":1537,"stem":1538},"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":1540,"path":1541,"stem":1542},"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":1544,"path":1545,"stem":1546},"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":1548,"path":1549,"stem":1550},"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":1552,"path":1553,"stem":1554},"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":711,"path":710,"stem":1556},"5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F23.helix-qac",{"title":1558,"path":1559,"stem":1560},"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":737,"path":736,"stem":1562},"5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F25.klocwork",{"title":1564,"path":1565,"stem":1566},"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":1568,"path":1569,"stem":1570},"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":1572,"path":1573,"stem":1574},"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":1576,"path":759,"stem":1577},"Parasoft","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F29.parasoft",{"title":1579,"path":1580,"stem":1581},"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":786,"path":785,"stem":1583},"5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F31.polyspace-bug-finder",{"title":1585,"path":1586,"stem":1587},"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":1589,"path":1590,"stem":1591},"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":1593,"path":1594,"stem":1595},"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":1597,"path":1598,"stem":1599},"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":1601,"path":1602,"stem":1603},"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":1605,"path":1606,"stem":1607},"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":1609,"path":1610,"stem":1611},"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":1613,"path":1614,"stem":1615},"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":1617,"path":1618,"stem":1619},"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":1621,"path":1622,"stem":1623},"Security Reviewer - Static Reviewer","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fsecurity-reviewer-static-reviewer","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F41.security-reviewer-static-reviewer",{"title":1625,"path":1626,"stem":1627},"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":1629,"path":1630,"stem":1631},"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":1633,"path":1634,"stem":1635},"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":848,"path":847,"stem":1637},"5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F45.sonarqube-ccpp-plugin",{"title":1639,"path":1640,"stem":1641},"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":1643,"path":1644,"stem":1645},"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":1647,"path":1648,"stem":1649},"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":1651,"path":1652,"stem":1653,"children":1654},"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",[1655,1656,1660],{"title":1651,"path":1652,"stem":1653},{"title":1657,"path":1658,"stem":1659},"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":1661,"path":1662,"stem":1663},"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":1665,"path":1666,"stem":1667},"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":1669,"path":1670,"stem":1671,"children":1672},"Admin","\u002Fsei-cert-cpp-coding-standard\u002Fadmin","5.sei-cert-cpp-coding-standard\u002F5.admin\u002F1.index",[1673,1674],{"title":1669,"path":1670,"stem":1671},{"title":1675,"path":1676,"stem":1677},"TODO List","\u002Fsei-cert-cpp-coding-standard\u002Fadmin\u002Ftodo-list","5.sei-cert-cpp-coding-standard\u002F5.admin\u002F2.todo-list",{"title":1679,"path":1680,"stem":1681},"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",1775657779531]