[{"data":1,"prerenderedAt":1548},["ShallowReactive",2],{"global-navigation":3,"page-\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fastree":28,"surround-\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fastree":921,"sidebar-sei-cert-cpp-coding-standard":930},[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":41,"extension":913,"meta":914,"navigation":7,"path":917,"seo":918,"stem":919,"__hash__":920},"content\u002F5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F02.astree.md","Astrée",{"type":32,"value":33,"toc":909},"minimark",[34,38,42,45,48,55],[35,36,30],"h1",{"id":37},"astrée",[39,40,41],"p",{},"This page was automatically generated and should not be edited.",[39,43,44],{},"The information on this page was provided by outside contributors and has not been verified by SEI CERT.",[39,46,47],{},"The table below can be re-ordered, by clicking column headers.",[39,49,50,54],{},[51,52,53],"strong",{},"Tool Version:"," 25.10",[56,57,58,69],"table",{},[59,60,61],"thead",{},[62,63,64,67],"tr",{},[65,66],"th",{},[65,68],{},[70,71,72,81,93,103,114,125,136,147,158,167,178,189,198,209,220,229,238,247,256,265,274,283,291,299,309,319,330,341,350,361,372,381,392,403,414,423,432,443,454,465,476,487,496,507,517,528,539,549,559,568,577,588,599,610,621,631,641,649,660,669,680,691,702,713,722,733,744,752,761,770,779,788,799,808,817,826,835,844,852,862,871,880,891,900],"tbody",{},[62,73,74,78],{},[75,76,77],"td",{},"Checker",[75,79,80],{},"Guideline",[62,82,83,86],{},[75,84,85],{},"assert_failure",[75,87,88],{},[89,90,92],"a",{"href":91},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fcharacters-and-strings-str\u002Fstring-from-a-null-pointer","STR51-CPP. Do not attempt to create a std::string from a null pointer",[62,94,95,97],{},[75,96,85],{},[75,98,99],{},[89,100,102],{"href":101},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fcharacters-and-strings-str\u002Fstr53-cpp","STR53-CPP. Range check element access",[62,104,105,108],{},[75,106,107],{},"bad-function (AUTOSAR.26.5.1A)",[75,109,110],{},[89,111,113],{"href":112},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fmiscellaneous-msc\u002Frand-for-generating-pseudorandom-numbers","MSC50-CPP. Do not use std::rand() for generating pseudorandom numbers",[62,115,116,119],{},[75,117,118],{},"cast-integer-to-enum",[75,120,121],{},[89,122,124],{"href":123},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fintegers-int\u002Fint50-cpp","INT50-CPP. Do not cast to an out-of-range enumeration value",[62,126,127,130],{},[75,128,129],{},"catch-class-by-value",[75,131,132],{},[89,133,135],{"href":134},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fexceptions-and-error-handling-err\u002Ferr61-cpp","ERR61-CPP. Catch exceptions by lvalue reference",[62,137,138,141],{},[75,139,140],{},"class-inconsistent-definitions",[75,142,143],{},[89,144,146],{"href":145},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fdeclarations-and-initialization-dcl\u002Fdcl60-cpp","DCL60-CPP. Obey the one-definition rule",[62,148,149,152],{},[75,150,151],{},"csa-call-uninitialized-function-pointer",[75,153,154],{},[89,155,157],{"href":156},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fexpressions-exp\u002Fexp53-cpp","EXP53-CPP. Do not read uninitialized memory",[62,159,160,163],{},[75,161,162],{},"csa-call-uninitialized-object-pointer",[75,164,165],{},[89,166,157],{"href":156},[62,168,169,172],{},[75,170,171],{},"csa-double-free",[75,173,174],{},[89,175,177],{"href":176},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fmemory-management-mem\u002Fmem50-cpp","MEM50-CPP. Do not access freed memory",[62,179,180,183],{},[75,181,182],{},"csa-memory-leak",[75,184,185],{},[89,186,188],{"href":187},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fmemory-management-mem\u002Fmem51-cpp","MEM51-CPP. Properly deallocate dynamically allocated resources",[62,190,191,194],{},[75,192,193],{},"csa-mismathced-deallocator",[75,195,196],{},[89,197,188],{"href":187},[62,199,200,203],{},[75,201,202],{},"csa-placement-new",[75,204,205],{},[89,206,208],{"href":207},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fmemory-management-mem\u002Fmem54-cpp","MEM54-CPP. Provide placement new with properly aligned pointers to sufficient storage capacity",[62,210,211,214],{},[75,212,213],{},"csa-stack-address-escape",[75,215,216],{},[89,217,219],{"href":218},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fexpressions-exp\u002Fexp54-cpp","EXP54-CPP. Do not access an object outside of its lifetime",[62,221,222,225],{},[75,223,224],{},"csa-uninitialized-array-subscript",[75,226,227],{},[89,228,157],{"href":156},[62,230,231,234],{},[75,232,233],{},"csa-uninitialized-assign",[75,235,236],{},[89,237,157],{"href":156},[62,239,240,243],{},[75,241,242],{},"csa-uninitialized-binop-operand",[75,244,245],{},[89,246,157],{"href":156},[62,248,249,252],{},[75,250,251],{},"csa-uninitialized-branch-condition",[75,253,254],{},[89,255,157],{"href":156},[62,257,258,261],{},[75,259,260],{},"csa-uninitialized-return",[75,262,263],{},[89,264,157],{"href":156},[62,266,267,270],{},[75,268,269],{},"csa-use-after-free",[75,271,272],{},[89,273,177],{"href":176},[62,275,276,279],{},[75,277,278],{},"dangling_pointer_use",[75,280,281],{},[89,282,219],{"href":218},[62,284,285,287],{},[75,286,278],{},[75,288,289],{},[89,290,177],{"href":176},[62,292,293,295],{},[75,294,278],{},[75,296,297],{},[89,298,188],{"href":187},[62,300,301,303],{},[75,302,278],{},[75,304,305],{},[89,306,308],{"href":307},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fmemory-management-mem\u002Fmem56-cpp","MEM56-CPP. Do not store an already-owned pointer value in an unrelated smart pointer",[62,310,311,313],{},[75,312,278],{},[75,314,315],{},[89,316,318],{"href":317},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fobject-oriented-programming-oop\u002Foop54-cpp","OOP54-CPP. Gracefully handle self-copy assignment",[62,320,321,324],{},[75,322,323],{},"default-construction",[75,325,326],{},[89,327,329],{"href":328},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fmiscellaneous-msc\u002Fmsc51-cpp","MSC51-CPP. Ensure your random number generator is properly seeded",[62,331,332,335],{},[75,333,334],{},"default-new-overaligned-type",[75,336,337],{},[89,338,340],{"href":339},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fmemory-management-mem\u002Fmem57-cpp","MEM57-CPP. Avoid using default operator new for over-aligned types",[62,342,343,346],{},[75,344,345],{},"definition-duplicate",[75,347,348],{},[89,349,146],{"href":145},[62,351,352,355],{},[75,353,354],{},"delete-with-incomplete-type",[75,356,357],{},[89,358,360],{"href":359},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fexpressions-exp\u002Fexp57-cpp","EXP57-CPP. Do not cast or delete pointers to incomplete classes",[62,362,363,366],{},[75,364,365],{},"delete-without-noexcept",[75,367,368],{},[89,369,371],{"href":370},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fdeclarations-and-initialization-dcl\u002Fdcl57-cpp","DCL57-CPP. Do not let exceptions escape from destructors or deallocation functions",[62,373,374,377],{},[75,375,376],{},"destructor-without-noexcept",[75,378,379],{},[89,380,371],{"href":370},[62,382,383,386],{},[75,384,385],{},"early-catch-all",[75,387,388],{},[89,389,391],{"href":390},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fexceptions-and-error-handling-err\u002Ferr51-cpp","ERR51-CPP. Handle all exceptions",[62,393,394,397],{},[75,395,396],{},"exception-caught-by-earlier-handler",[75,398,399],{},[89,400,402],{"href":401},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fexceptions-and-error-handling-err\u002Ferr54-cpp","ERR54-CPP. Catch handlers should order their parameter types from most derived to least derived",[62,404,405,408],{},[75,406,407],{},"exception-handler-member-access",[75,409,410],{},[89,411,413],{"href":412},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fexceptions-and-error-handling-err\u002Ferr53-cpp","ERR53-CPP. Do not reference base classes or class data members in a constructor or destructor function-try-block handler",[62,415,416,419],{},[75,417,418],{},"exception-propagation-outside-catch-all",[75,420,421],{},[89,422,391],{"href":390},[62,424,425,428],{},[75,426,427],{},"external-file-spreading",[75,429,430],{},[89,431,146],{"href":145},[62,433,434,437],{},[75,435,436],{},"function-ellipsis",[75,438,439],{},[89,440,442],{"href":441},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fdeclarations-and-initialization-dcl\u002Fdcl50-cpp","DCL50-CPP. Do not define a C-style variadic function",[62,444,445,448],{},[75,446,447],{},"include-setjmp",[75,449,450],{},[89,451,453],{"href":452},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fexceptions-and-error-handling-err\u002Ferr52-cpp","ERR52-CPP. Do not use setjmp() or longjmp()",[62,455,456,459],{},[75,457,458],{},"include-time",[75,460,461],{},[89,462,464],{"href":463},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fobject-oriented-programming-oop\u002Foop57-cpp","OOP57-CPP. Prefer special member functions and overloaded operators to C Standard Library functions",[62,466,467,470],{},[75,468,469],{},"initializer-list-order",[75,471,472],{},[89,473,475],{"href":474},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fobject-oriented-programming-oop\u002Foop53-cpp","OOP53-CPP. Write constructor member initializers in the canonical order",[62,477,478,481],{},[75,479,480],{},"invalid-noreturn",[75,482,483],{},[89,484,486],{"href":485},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fmiscellaneous-msc\u002Fmsc53-cpp","MSC53-CPP. Do not return from a function declared [[noreturn]]",[62,488,489,492],{},[75,490,491],{},"invalid_dynamic_memory_allocation",[75,493,494],{},[89,495,188],{"href":187},[62,497,498,501],{},[75,499,500],{},"invalid_function_pointer",[75,502,503],{},[89,504,506],{"href":505},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fobject-oriented-programming-oop\u002Foop50-cpp","OOP50-CPP. Do not invoke virtual functions from constructors or destructors",[62,508,509,511],{},[75,510,500],{},[75,512,513],{},[89,514,516],{"href":515},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fobject-oriented-programming-oop\u002Foop55-cpp","OOP55-CPP. Do not use pointer-to-member operators to access nonexistent members",[62,518,519,522],{},[75,520,521],{},"invalid_pointer_comparison",[75,523,524],{},[89,525,527],{"href":526},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fcontainers-ctr\u002Fctr54-cpp","CTR54-CPP. Do not subtract iterators that do not refer to the same container",[62,529,530,533],{},[75,531,532],{},"invalid_pointer_dereference",[75,534,535],{},[89,536,538],{"href":537},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fexpressions-exp\u002Fexp61-cpp","EXP61-CPP. A lambda object must not outlive any of its reference captured objects",[62,540,541,543],{},[75,542,532],{},[75,544,545],{},[89,546,548],{"href":547},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fexpressions-exp\u002Fexp62-cpp","EXP62-CPP. Do not access the bits of an object representation that are not part of the object's value representation",[62,550,551,553],{},[75,552,532],{},[75,554,555],{},[89,556,558],{"href":557},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fcontainers-ctr\u002Fctr52-cpp","CTR52-CPP. Guarantee that library functions do not overflow",[62,560,561,564],{},[75,562,563],{},"invalid_pointer_subtraction",[75,565,566],{},[89,567,527],{"href":526},[62,569,570,573],{},[75,571,572],{},"main-function-catch-all",[75,574,575],{},[89,576,391],{"href":390},[62,578,579,582],{},[75,580,581],{},"new-delete-pairwise",[75,583,584],{},[89,585,587],{"href":586},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fdeclarations-and-initialization-dcl\u002Fdcl54-cpp","DCL54-CPP. Overload allocation and deallocation functions as a pair in the same scope",[62,589,590,593],{},[75,591,592],{},"non-virtual-public-destructor-in-non-final-class",[75,594,595],{},[89,596,598],{"href":597},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fobject-oriented-programming-oop\u002Foop52-cpp","OOP52-CPP. Do not delete a polymorphic object without a virtual destructor",[62,600,601,604],{},[75,602,603],{},"operator-new-requirements",[75,605,606],{},[89,607,609],{"href":608},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fmemory-management-mem\u002Fmem55-cpp","MEM55-CPP. Honor replacement dynamic storage management requirements",[62,611,612,615],{},[75,613,614],{},"overflow_upon_dereference",[75,616,617],{},[89,618,620],{"href":619},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fcontainers-ctr\u002Fctr50-cpp","CTR50-CPP. Guarantee that container indices and iterators are within the valid range",[62,622,623,625],{},[75,624,614],{},[75,626,627],{},[89,628,630],{"href":629},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fcontainers-ctr\u002Fctr51-cpp","CTR51-CPP. Use valid references, pointers, and iterators to reference elements of a container",[62,632,633,635],{},[75,634,614],{},[75,636,637],{},[89,638,640],{"href":639},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fcontainers-ctr\u002Fctr53-cpp","CTR53-CPP. Use valid iterator ranges",[62,642,643,645],{},[75,644,614],{},[75,646,647],{},[89,648,516],{"href":515},[62,650,651,654],{},[75,652,653],{},"pointer-qualifier-cast-const",[75,655,656],{},[89,657,659],{"href":658},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fexpressions-exp\u002Fexp55-cpp","EXP55-CPP. Do not access a cv-qualified object through a cv-unqualified type",[62,661,662,665],{},[75,663,664],{},"pointer-qualifier-cast-volatile",[75,666,667],{},[89,668,659],{"href":658},[62,670,671,674],{},[75,672,673],{},"potentially-throwing-static-initialization",[75,675,676],{},[89,677,679],{"href":678},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fexceptions-and-error-handling-err\u002Ferr58-cpp","ERR58-CPP. Handle all exceptions thrown before main() begins executing",[62,681,682,685],{},[75,683,684],{},"read_write_data_race",[75,686,687],{},[89,688,690],{"href":689},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fconcurrency-con\u002Fcon52-cpp","CON52-CPP. Prevent data races when accessing bit-fields from multiple threads",[62,692,693,696],{},[75,694,695],{},"reserved-identifier",[75,697,698],{},[89,699,701],{"href":700},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fdeclarations-and-initialization-dcl\u002Fdcl51-cpp","DCL51-CPP. Do not declare or define a reserved identifier",[62,703,704,707],{},[75,705,706],{},"return-implicit",[75,708,709],{},[89,710,712],{"href":711},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fmiscellaneous-msc\u002Fmsc52-cpp","MSC52-CPP. Value-returning functions must return a value from all exit paths",[62,714,715,718],{},[75,716,717],{},"return-reference-local",[75,719,720],{},[89,721,219],{"href":218},[62,723,724,727],{},[75,725,726],{},"sizeof",[75,728,729],{},[89,730,732],{"href":731},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fexpressions-exp\u002Fexp52-cpp","EXP52-CPP. Do not rely on side effects in unevaluated operands",[62,734,735,738],{},[75,736,737],{},"stdlib-use",[75,739,740],{},[89,741,743],{"href":742},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fexceptions-and-error-handling-err\u002Ferr50-cpp","ERR50-CPP. Do not abruptly terminate the program",[62,745,746,748],{},[75,747,737],{},[75,749,750],{},[89,751,464],{"href":463},[62,753,754,757],{},[75,755,756],{},"stdlib-use-ato",[75,758,759],{},[89,760,464],{"href":463},[62,762,763,766],{},[75,764,765],{},"stdlib-use-getenv",[75,767,768],{},[89,769,464],{"href":463},[62,771,772,775],{},[75,773,774],{},"stdlib-use-string-unbounded",[75,776,777],{},[89,778,464],{"href":463},[62,780,781,784],{},[75,782,783],{},"stdlib-use-system",[75,785,786],{},[89,787,464],{"href":463},[62,789,790,793],{},[75,791,792],{},"stream-input-char-array",[75,794,795],{},[89,796,798],{"href":797},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fcharacters-and-strings-str\u002Fstr50-cpp","STR50-CPP. Guarantee that storage for strings has sufficient space for character data and the null terminator",[62,800,801,804],{},[75,802,803],{},"type-compatibility",[75,805,806],{},[89,807,146],{"href":145},[62,809,810,813],{},[75,811,812],{},"type-file-spreading",[75,814,815],{},[89,816,146],{"href":145},[62,818,819,822],{},[75,820,821],{},"undefined-extern",[75,823,824],{},[89,825,146],{"href":145},[62,827,828,831],{},[75,829,830],{},"undefined-extern-pure-virtual",[75,832,833],{},[89,834,146],{"href":145},[62,836,837,840],{},[75,838,839],{},"unhandled-throw-noexcept",[75,841,842],{},[89,843,743],{"href":742},[62,845,846,848],{},[75,847,839],{},[75,849,850],{},[89,851,391],{"href":390},[62,853,854,856],{},[75,855,839],{},[75,857,858],{},[89,859,861],{"href":860},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fexceptions-and-error-handling-err\u002Ferr55-cpp","ERR55-CPP. Honor exception specifications",[62,863,864,867],{},[75,865,866],{},"uninitialized-read",[75,868,869],{},[89,870,157],{"href":156},[62,872,873,876],{},[75,874,875],{},"uninitialized_variable_use",[75,877,878],{},[89,879,548],{"href":547},[62,881,882,885],{},[75,883,884],{},"unnamed-namespace-header",[75,886,887],{},[89,888,890],{"href":889},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fdeclarations-and-initialization-dcl\u002Fdcl59-cpp","DCL59-CPP. Do not define an unnamed namespace in a header file",[62,892,893,896],{},[75,894,895],{},"virtual-call-in-constructor",[75,897,898],{},[89,899,506],{"href":505},[62,901,902,905],{},[75,903,904],{},"write_write_data_race",[75,906,907],{},[89,908,690],{"href":689},{"title":910,"searchDepth":911,"depth":911,"links":912},"",2,[],"md",{"tags":915},[916],"analyzer","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fastree",{"title":30,"description":41},"5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F02.astree","t8Qs9c7_shVzEtdGQ5lQVmp7MGp9RpEgAHOZkIz60Ow",[922,926],{"title":923,"path":924,"stem":925,"children":-1},"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",{"title":927,"path":928,"stem":929,"children":-1},"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",[931],{"title":932,"path":933,"stem":934,"children":935},"SEI CERT C++ Coding Standard","\u002Fsei-cert-cpp-coding-standard","5.sei-cert-cpp-coding-standard\u002F1.index",[936,937,1005,1317,1534,1544],{"title":932,"path":933,"stem":934},{"title":938,"path":939,"stem":940,"children":941},"Front Matter","\u002Fsei-cert-cpp-coding-standard\u002Ffront-matter","5.sei-cert-cpp-coding-standard\u002F2.front-matter\u002F1.index",[942,943],{"title":938,"path":939,"stem":940},{"title":944,"path":945,"stem":946,"children":947},"Introduction","\u002Fsei-cert-cpp-coding-standard\u002Ffront-matter\u002Fintroduction","5.sei-cert-cpp-coding-standard\u002F2.front-matter\u002F2.introduction\u002F01.index",[948,949,953,957,961,965,969,973,977,981,985,989,993,997,1001],{"title":944,"path":945,"stem":946},{"title":950,"path":951,"stem":952},"Scope","\u002Fsei-cert-cpp-coding-standard\u002Ffront-matter\u002Fintroduction\u002Fscope","5.sei-cert-cpp-coding-standard\u002F2.front-matter\u002F2.introduction\u002F02.scope",{"title":954,"path":955,"stem":956},"Audience","\u002Fsei-cert-cpp-coding-standard\u002Ffront-matter\u002Fintroduction\u002Faudience","5.sei-cert-cpp-coding-standard\u002F2.front-matter\u002F2.introduction\u002F03.audience",{"title":958,"path":959,"stem":960},"Usage","\u002Fsei-cert-cpp-coding-standard\u002Ffront-matter\u002Fintroduction\u002Fusage","5.sei-cert-cpp-coding-standard\u002F2.front-matter\u002F2.introduction\u002F04.usage",{"title":962,"path":963,"stem":964},"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":966,"path":967,"stem":968},"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":970,"path":971,"stem":972},"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":974,"path":975,"stem":976},"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":978,"path":979,"stem":980},"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":982,"path":983,"stem":984},"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":986,"path":987,"stem":988},"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":990,"path":991,"stem":992},"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":994,"path":995,"stem":996},"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":998,"path":999,"stem":1000},"Acknowledgments","\u002Fsei-cert-cpp-coding-standard\u002Ffront-matter\u002Fintroduction\u002Facknowledgments","5.sei-cert-cpp-coding-standard\u002F2.front-matter\u002F2.introduction\u002F14.acknowledgments",{"title":1002,"path":1003,"stem":1004},"Automated Detection","\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":1006,"path":1007,"stem":1008,"children":1009},"Rules","\u002Fsei-cert-cpp-coding-standard\u002Frules","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F01.index",[1010,1011,1028,1060,1092,1130,1172,1220,1234,1242,1268,1287],{"title":1006,"path":1007,"stem":1008},{"title":1012,"path":1013,"stem":1014,"children":1015},"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",[1016,1017,1019,1023,1025],{"title":1012,"path":1013,"stem":1014},{"title":798,"path":797,"stem":1018},"5.sei-cert-cpp-coding-standard\u002F3.rules\u002F02.characters-and-strings-str\u002F2.str50-cpp",{"title":1020,"path":1021,"stem":1022},"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":102,"path":101,"stem":1024},"5.sei-cert-cpp-coding-standard\u002F3.rules\u002F02.characters-and-strings-str\u002F4.str53-cpp",{"title":1026,"path":91,"stem":1027},"string from a null pointer","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F02.characters-and-strings-str\u002F5.string-from-a-null-pointer",{"title":1029,"path":1030,"stem":1031,"children":1032},"Concurrency (CON)","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fconcurrency-con","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F03.concurrency-con\u002F1.index",[1033,1034,1038,1042,1044,1048,1052,1056],{"title":1029,"path":1030,"stem":1031},{"title":1035,"path":1036,"stem":1037},"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":1039,"path":1040,"stem":1041},"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":690,"path":689,"stem":1043},"5.sei-cert-cpp-coding-standard\u002F3.rules\u002F03.concurrency-con\u002F4.con52-cpp",{"title":1045,"path":1046,"stem":1047},"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":1049,"path":1050,"stem":1051},"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":1053,"path":1054,"stem":1055},"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":1057,"path":1058,"stem":1059},"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":1061,"path":1062,"stem":1063,"children":1064},"Containers (CTR)","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fcontainers-ctr","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F04.containers-ctr\u002F01.index",[1065,1066,1068,1070,1072,1074,1076,1080,1084,1088],{"title":1061,"path":1062,"stem":1063},{"title":620,"path":619,"stem":1067},"5.sei-cert-cpp-coding-standard\u002F3.rules\u002F04.containers-ctr\u002F02.ctr50-cpp",{"title":630,"path":629,"stem":1069},"5.sei-cert-cpp-coding-standard\u002F3.rules\u002F04.containers-ctr\u002F03.ctr51-cpp",{"title":558,"path":557,"stem":1071},"5.sei-cert-cpp-coding-standard\u002F3.rules\u002F04.containers-ctr\u002F04.ctr52-cpp",{"title":640,"path":639,"stem":1073},"5.sei-cert-cpp-coding-standard\u002F3.rules\u002F04.containers-ctr\u002F05.ctr53-cpp",{"title":527,"path":526,"stem":1075},"5.sei-cert-cpp-coding-standard\u002F3.rules\u002F04.containers-ctr\u002F06.ctr54-cpp",{"title":1077,"path":1078,"stem":1079},"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":1081,"path":1082,"stem":1083},"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":1085,"path":1086,"stem":1087},"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":1089,"path":1090,"stem":1091},"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":1093,"path":1094,"stem":1095,"children":1096},"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",[1097,1098,1100,1102,1106,1110,1112,1116,1120,1122,1126,1128],{"title":1093,"path":1094,"stem":1095},{"title":442,"path":441,"stem":1099},"5.sei-cert-cpp-coding-standard\u002F3.rules\u002F05.declarations-and-initialization-dcl\u002F02.dcl50-cpp",{"title":701,"path":700,"stem":1101},"5.sei-cert-cpp-coding-standard\u002F3.rules\u002F05.declarations-and-initialization-dcl\u002F03.dcl51-cpp",{"title":1103,"path":1104,"stem":1105},"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":1107,"path":1108,"stem":1109},"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":587,"path":586,"stem":1111},"5.sei-cert-cpp-coding-standard\u002F3.rules\u002F05.declarations-and-initialization-dcl\u002F06.dcl54-cpp",{"title":1113,"path":1114,"stem":1115},"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":1117,"path":1118,"stem":1119},"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":371,"path":370,"stem":1121},"5.sei-cert-cpp-coding-standard\u002F3.rules\u002F05.declarations-and-initialization-dcl\u002F09.dcl57-cpp",{"title":1123,"path":1124,"stem":1125},"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":890,"path":889,"stem":1127},"5.sei-cert-cpp-coding-standard\u002F3.rules\u002F05.declarations-and-initialization-dcl\u002F11.dcl59-cpp",{"title":146,"path":145,"stem":1129},"5.sei-cert-cpp-coding-standard\u002F3.rules\u002F05.declarations-and-initialization-dcl\u002F12.dcl60-cpp",{"title":1131,"path":1132,"stem":1133,"children":1134},"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",[1135,1136,1138,1140,1142,1144,1146,1148,1152,1156,1158,1162,1166,1168],{"title":1131,"path":1132,"stem":1133},{"title":743,"path":742,"stem":1137},"5.sei-cert-cpp-coding-standard\u002F3.rules\u002F06.exceptions-and-error-handling-err\u002F02.err50-cpp",{"title":391,"path":390,"stem":1139},"5.sei-cert-cpp-coding-standard\u002F3.rules\u002F06.exceptions-and-error-handling-err\u002F03.err51-cpp",{"title":453,"path":452,"stem":1141},"5.sei-cert-cpp-coding-standard\u002F3.rules\u002F06.exceptions-and-error-handling-err\u002F04.err52-cpp",{"title":413,"path":412,"stem":1143},"5.sei-cert-cpp-coding-standard\u002F3.rules\u002F06.exceptions-and-error-handling-err\u002F05.err53-cpp",{"title":402,"path":401,"stem":1145},"5.sei-cert-cpp-coding-standard\u002F3.rules\u002F06.exceptions-and-error-handling-err\u002F06.err54-cpp",{"title":861,"path":860,"stem":1147},"5.sei-cert-cpp-coding-standard\u002F3.rules\u002F06.exceptions-and-error-handling-err\u002F07.err55-cpp",{"title":1149,"path":1150,"stem":1151},"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":1153,"path":1154,"stem":1155},"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":679,"path":678,"stem":1157},"5.sei-cert-cpp-coding-standard\u002F3.rules\u002F06.exceptions-and-error-handling-err\u002F10.err58-cpp",{"title":1159,"path":1160,"stem":1161},"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":1163,"path":1164,"stem":1165},"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":135,"path":134,"stem":1167},"5.sei-cert-cpp-coding-standard\u002F3.rules\u002F06.exceptions-and-error-handling-err\u002F13.err61-cpp",{"title":1169,"path":1170,"stem":1171},"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":1173,"path":1174,"stem":1175,"children":1176},"Expressions (EXP)","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fexpressions-exp","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F07.expressions-exp\u002F01.index",[1177,1178,1182,1186,1188,1190,1192,1194,1198,1200,1204,1208,1212,1214,1216],{"title":1173,"path":1174,"stem":1175},{"title":1179,"path":1180,"stem":1181},"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":1183,"path":1184,"stem":1185},"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":732,"path":731,"stem":1187},"5.sei-cert-cpp-coding-standard\u002F3.rules\u002F07.expressions-exp\u002F04.exp52-cpp",{"title":157,"path":156,"stem":1189},"5.sei-cert-cpp-coding-standard\u002F3.rules\u002F07.expressions-exp\u002F05.exp53-cpp",{"title":219,"path":218,"stem":1191},"5.sei-cert-cpp-coding-standard\u002F3.rules\u002F07.expressions-exp\u002F06.exp54-cpp",{"title":659,"path":658,"stem":1193},"5.sei-cert-cpp-coding-standard\u002F3.rules\u002F07.expressions-exp\u002F07.exp55-cpp",{"title":1195,"path":1196,"stem":1197},"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":360,"path":359,"stem":1199},"5.sei-cert-cpp-coding-standard\u002F3.rules\u002F07.expressions-exp\u002F09.exp57-cpp",{"title":1201,"path":1202,"stem":1203},"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":1205,"path":1206,"stem":1207},"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":1209,"path":1210,"stem":1211},"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":538,"path":537,"stem":1213},"5.sei-cert-cpp-coding-standard\u002F3.rules\u002F07.expressions-exp\u002F13.exp61-cpp",{"title":548,"path":547,"stem":1215},"5.sei-cert-cpp-coding-standard\u002F3.rules\u002F07.expressions-exp\u002F14.exp62-cpp",{"title":1217,"path":1218,"stem":1219},"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":1221,"path":1222,"stem":1223,"children":1224},"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",[1225,1226,1230],{"title":1221,"path":1222,"stem":1223},{"title":1227,"path":1228,"stem":1229},"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":1231,"path":1232,"stem":1233},"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":1235,"path":1236,"stem":1237,"children":1238},"Integers (INT)","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fintegers-int","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F09.integers-int\u002F1.index",[1239,1240],{"title":1235,"path":1236,"stem":1237},{"title":124,"path":123,"stem":1241},"5.sei-cert-cpp-coding-standard\u002F3.rules\u002F09.integers-int\u002F2.int50-cpp",{"title":1243,"path":1244,"stem":1245,"children":1246},"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",[1247,1248,1250,1252,1256,1260,1262,1264,1266],{"title":1243,"path":1244,"stem":1245},{"title":177,"path":176,"stem":1249},"5.sei-cert-cpp-coding-standard\u002F3.rules\u002F10.memory-management-mem\u002F2.mem50-cpp",{"title":188,"path":187,"stem":1251},"5.sei-cert-cpp-coding-standard\u002F3.rules\u002F10.memory-management-mem\u002F3.mem51-cpp",{"title":1253,"path":1254,"stem":1255},"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":1257,"path":1258,"stem":1259},"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":208,"path":207,"stem":1261},"5.sei-cert-cpp-coding-standard\u002F3.rules\u002F10.memory-management-mem\u002F6.mem54-cpp",{"title":609,"path":608,"stem":1263},"5.sei-cert-cpp-coding-standard\u002F3.rules\u002F10.memory-management-mem\u002F7.mem55-cpp",{"title":308,"path":307,"stem":1265},"5.sei-cert-cpp-coding-standard\u002F3.rules\u002F10.memory-management-mem\u002F8.mem56-cpp",{"title":340,"path":339,"stem":1267},"5.sei-cert-cpp-coding-standard\u002F3.rules\u002F10.memory-management-mem\u002F9.mem57-cpp",{"title":1269,"path":1270,"stem":1271,"children":1272},"Miscellaneous (MSC)","\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fmiscellaneous-msc","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F11.miscellaneous-msc\u002F1.index",[1273,1274,1276,1278,1280,1284],{"title":1269,"path":1270,"stem":1271},{"title":329,"path":328,"stem":1275},"5.sei-cert-cpp-coding-standard\u002F3.rules\u002F11.miscellaneous-msc\u002F2.msc51-cpp",{"title":712,"path":711,"stem":1277},"5.sei-cert-cpp-coding-standard\u002F3.rules\u002F11.miscellaneous-msc\u002F3.msc52-cpp",{"title":486,"path":485,"stem":1279},"5.sei-cert-cpp-coding-standard\u002F3.rules\u002F11.miscellaneous-msc\u002F4.msc53-cpp",{"title":1281,"path":1282,"stem":1283},"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":1285,"path":112,"stem":1286},"rand() for generating pseudorandom numbers","5.sei-cert-cpp-coding-standard\u002F3.rules\u002F11.miscellaneous-msc\u002F6.rand-for-generating-pseudorandom-numbers",{"title":1288,"path":1289,"stem":1290,"children":1291},"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",[1292,1293,1295,1299,1301,1303,1305,1307,1311,1313],{"title":1288,"path":1289,"stem":1290},{"title":506,"path":505,"stem":1294},"5.sei-cert-cpp-coding-standard\u002F3.rules\u002F12.object-oriented-programming-oop\u002F02.oop50-cpp",{"title":1296,"path":1297,"stem":1298},"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":598,"path":597,"stem":1300},"5.sei-cert-cpp-coding-standard\u002F3.rules\u002F12.object-oriented-programming-oop\u002F04.oop52-cpp",{"title":475,"path":474,"stem":1302},"5.sei-cert-cpp-coding-standard\u002F3.rules\u002F12.object-oriented-programming-oop\u002F05.oop53-cpp",{"title":318,"path":317,"stem":1304},"5.sei-cert-cpp-coding-standard\u002F3.rules\u002F12.object-oriented-programming-oop\u002F06.oop54-cpp",{"title":516,"path":515,"stem":1306},"5.sei-cert-cpp-coding-standard\u002F3.rules\u002F12.object-oriented-programming-oop\u002F07.oop55-cpp",{"title":1308,"path":1309,"stem":1310},"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":464,"path":463,"stem":1312},"5.sei-cert-cpp-coding-standard\u002F3.rules\u002F12.object-oriented-programming-oop\u002F09.oop57-cpp",{"title":1314,"path":1315,"stem":1316},"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":1318,"path":1319,"stem":1320,"children":1321},"Back Matter","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F1.index",[1322,1323,1327,1331,1516,1530],{"title":1318,"path":1319,"stem":1320},{"title":1324,"path":1325,"stem":1326},"AA. Bibliography","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Faa-bibliography","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F2.aa-bibliography",{"title":1328,"path":1329,"stem":1330},"BB. Definitions","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fbb-definitions","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F3.bb-definitions",{"title":923,"path":924,"stem":925,"children":1332},[1333,1334,1335,1336,1340,1344,1348,1352,1356,1360,1364,1368,1372,1376,1380,1384,1388,1392,1396,1400,1404,1408,1412,1416,1420,1424,1428,1432,1436,1440,1444,1448,1452,1456,1460,1464,1468,1472,1476,1480,1484,1488,1492,1496,1500,1504,1508,1512],{"title":923,"path":924,"stem":925},{"title":30,"path":917,"stem":919},{"title":927,"path":928,"stem":929},{"title":1337,"path":1338,"stem":1339},"Axivion Bauhaus Suite","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Faxivion-bauhaus-suite","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F04.axivion-bauhaus-suite",{"title":1341,"path":1342,"stem":1343},"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":1345,"path":1346,"stem":1347},"Clang","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fclang","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F06.clang",{"title":1349,"path":1350,"stem":1351},"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":1353,"path":1354,"stem":1355},"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":1357,"path":1358,"stem":1359},"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":1361,"path":1362,"stem":1363},"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":1365,"path":1366,"stem":1367},"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":1369,"path":1370,"stem":1371},"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":1373,"path":1374,"stem":1375},"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":1377,"path":1378,"stem":1379},"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":1381,"path":1382,"stem":1383},"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":1385,"path":1386,"stem":1387},"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":1389,"path":1390,"stem":1391},"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":1393,"path":1394,"stem":1395},"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":1397,"path":1398,"stem":1399},"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":1401,"path":1402,"stem":1403},"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":1405,"path":1406,"stem":1407},"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":1409,"path":1410,"stem":1411},"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":1413,"path":1414,"stem":1415},"Helix QAC","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fhelix-qac","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F23.helix-qac",{"title":1417,"path":1418,"stem":1419},"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":1421,"path":1422,"stem":1423},"Klocwork","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fklocwork","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F25.klocwork",{"title":1425,"path":1426,"stem":1427},"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":1429,"path":1430,"stem":1431},"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":1433,"path":1434,"stem":1435},"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":1437,"path":1438,"stem":1439},"Parasoft","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fparasoft","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F29.parasoft",{"title":1441,"path":1442,"stem":1443},"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":1445,"path":1446,"stem":1447},"Polyspace Bug Finder","\u002Fsei-cert-cpp-coding-standard\u002Fback-matter\u002Fcc-analyzers\u002Fpolyspace-bug-finder","5.sei-cert-cpp-coding-standard\u002F4.back-matter\u002F4.cc-analyzers\u002F31.polyspace-bug-finder",{"title":1449,"path":1450,"stem":1451},"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":1453,"path":1454,"stem":1455},"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":1457,"path":1458,"stem":1459},"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":1461,"path":1462,"stem":1463},"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":1465,"path":1466,"stem":1467},"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":1469,"path":1470,"stem":1471},"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":1473,"path":1474,"stem":1475},"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":1477,"path":1478,"stem":1479},"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":1481,"path":1482,"stem":1483},"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":1485,"path":1486,"stem":1487},"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":1489,"path":1490,"stem":1491},"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":1493,"path":1494,"stem":1495},"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":1497,"path":1498,"stem":1499},"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":1501,"path":1502,"stem":1503},"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":1505,"path":1506,"stem":1507},"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":1509,"path":1510,"stem":1511},"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":1513,"path":1514,"stem":1515},"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":1517,"path":1518,"stem":1519,"children":1520},"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",[1521,1522,1526],{"title":1517,"path":1518,"stem":1519},{"title":1523,"path":1524,"stem":1525},"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":1527,"path":1528,"stem":1529},"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":1531,"path":1532,"stem":1533},"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":1535,"path":1536,"stem":1537,"children":1538},"Admin","\u002Fsei-cert-cpp-coding-standard\u002Fadmin","5.sei-cert-cpp-coding-standard\u002F5.admin\u002F1.index",[1539,1540],{"title":1535,"path":1536,"stem":1537},{"title":1541,"path":1542,"stem":1543},"TODO List","\u002Fsei-cert-cpp-coding-standard\u002Fadmin\u002Ftodo-list","5.sei-cert-cpp-coding-standard\u002F5.admin\u002F2.todo-list",{"title":1545,"path":1546,"stem":1547},"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",1775657785850]