[{"data":1,"prerenderedAt":2915},["ShallowReactive",2],{"wiki-page-\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0400-enum-class":3,"wiki-doc-items-\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0400-enum-class":2493,"language-switcher-data-\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0400-enum-class":2899,"wiki-i18n-paths-\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0400-enum-class":2914},{"id":4,"title":5,"body":6,"canonicalPath":2475,"chapterDepth":144,"chapterOrder":2476,"date":2477,"description":137,"docI18nKey":2478,"docKey":2479,"docRoot":2480,"docTitle":2481,"extension":2482,"i18nKey":2483,"isBlogPost":2484,"isWikiDoc":190,"isWikiIndex":2484,"layout":2485,"legacyPath":2485,"locale":2486,"localeSlug":2487,"meta":2488,"navigation":190,"path":2475,"seo":2489,"sourcePath":2490,"sourceStem":2483,"stem":2491,"wikiDepth":144,"__hash__":2492},"content\u002F_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0400-enum-class.md","enum class",{"type":7,"value":8,"toc":2448},"minimark",[9,14,23,58,63,67,72,103,107,110,114,127,131,211,215,292,296,301,589,595,603,607,1037,1041,1047,1051,1516,1520,1526,1530,1533,1537,1540,1543,1633,1637,1700,1704,1731,1735,1758,1762,1839,1843,1863,1875,1879,1884,1888,2137,2141,2147,2165,2169,2174,2227,2234,2239,2276,2282,2287,2347,2350,2353,2370,2373,2415,2419,2444],[10,11,13],"h2",{"id":12},"what-problem-does-this-section-solve","What problem does this section solve?",[15,16,17,18,22],"p",{},"There are several issues with C language's ",[19,20,21],"code",{},"enum",":",[24,25,26,42,52],"ol",{},[27,28,29,33,34,37,38,41],"li",{},[30,31,32],"strong",{},"Name Pollution",": Enum values leak into their surrounding scope. For example, after writing ",[19,35,36],{},"enum Color { red, green };",", ",[19,39,40],{},"red"," becomes a global name and can no longer be used in another enum.",[27,43,44,47,48,51],{},[30,45,46],{},"Implicit conversion to integer",": Enum values are implicitly converted to integers for operations (",[19,49,50],{},"red + 1"," is legal but usually meaningless).",[27,53,54,57],{},[30,55,56],{},"Underlying Type Not Specified",": The compiler determines how much memory to allocate for storing enum values.",[15,59,60,62],{},[19,61,5],{}," solved all the above problems.",[10,64,66],{"id":65},"what-is-this-feature","What is this feature?",[15,68,69,71],{},[19,70,5],{}," (scoped enumeration) is an improved enumeration introduced in C++11:",[73,74,75,86,92],"ul",{},[27,76,77,78,81,82,85],{},"The enumeration values have ",[30,79,80],{},"scope limitations",", and you need to access them using ",[19,83,84],{},"Color::red",".",[27,87,88,91],{},[30,89,90],{},"does not"," implicitly convert to an integer.",[27,93,94,95,98,99,102],{},"Can ",[30,96,97],{},"specify the underlying type"," (such as ",[19,100,101],{},"enum class Color : uint8_t",").",[10,104,106],{"id":105},"c-standard-version","C++ standard version",[15,108,109],{},"C++11",[10,111,113],{"id":112},"required-header-files","Required header files",[15,115,116,117,119,120,123,124,85],{},"No need for extra headers. ",[19,118,5],{}," is a language keyword. To use fixed-width integers like ",[19,121,122],{},"uint8_t"," as the underlying type, you need to include ",[19,125,126],{},"#include \u003Ccstdint>",[10,128,130],{"id":129},"basic-syntax","Basic Syntax",[132,133,138],"pre",{"className":134,"code":135,"language":136,"meta":137,"style":137},"language-cpp shiki shiki-themes github-light github-dark","enum class 枚举名 : 底层类型\n{\n    值1,\n    值2,\n    值3\n};\n\n\u002F\u002F 访问\n枚举名 变量 = 枚举名::值1;\n","cpp","",[19,139,140,155,161,167,173,179,185,192,199],{"__ignoreMap":137},[141,142,145,148,151],"span",{"class":143,"line":144},"line",1,[141,146,21],{"class":147},"szBVR",[141,149,150],{"class":147}," class",[141,152,154],{"class":153},"sVt8B"," 枚举名 : 底层类型\n",[141,156,158],{"class":143,"line":157},2,[141,159,160],{"class":153},"{\n",[141,162,164],{"class":143,"line":163},3,[141,165,166],{"class":153},"    值1,\n",[141,168,170],{"class":143,"line":169},4,[141,171,172],{"class":153},"    值2,\n",[141,174,176],{"class":143,"line":175},5,[141,177,178],{"class":153},"    值3\n",[141,180,182],{"class":143,"line":181},6,[141,183,184],{"class":153},"};\n",[141,186,188],{"class":143,"line":187},7,[141,189,191],{"emptyLinePlaceholder":190},true,"\n",[141,193,195],{"class":143,"line":194},8,[141,196,198],{"class":197},"sJ8bj","\u002F\u002F 访问\n",[141,200,202,205,208],{"class":143,"line":201},9,[141,203,204],{"class":153},"枚举名 变量 ",[141,206,207],{"class":147},"=",[141,209,210],{"class":153}," 枚举名::值1;\n",[10,212,214],{"id":213},"common-usage","Common Usage",[216,217,218,232],"table",{},[219,220,221],"thead",{},[222,223,224,229],"tr",{},[225,226,228],"th",{"align":227},"left","Usage",[225,230,231],{"align":227},"Explanation",[233,234,235,246,253,262,272,282],"tbody",{},[222,236,237,243],{},[238,239,240],"td",{"align":227},[19,241,242],{},"enum class E { A, B, C };",[238,244,245],{"align":227},"Basic Enum Class",[222,247,248,251],{},[238,249,250],{"align":227},"An enumeration (enum) type used to define a set of named constants. Typically used to represent a fixed set of related values, such as days of the week, states, or categories, improving code readability and type safety.",[238,252],{"align":227},[222,254,255,260],{},[238,256,257],{"align":227},[19,258,259],{},"enum class E : uint8_t { A, B, C };",[238,261,97],{"align":227},[222,263,264,269],{},[238,265,266],{"align":227},[19,267,268],{},"E::A",[238,270,271],{"align":227},"Accessing enum values (with scope)",[222,273,274,279],{},[238,275,276],{"align":227},[19,277,278],{},"static_cast\u003Cint>(E::A)",[238,280,281],{"align":227},"Explicit conversion (no implicit conversion)",[222,283,284,289],{},[238,285,286],{"align":227},[19,287,288],{},"switch (val) { case E::A: ... }",[238,290,291],{"align":227},"switch matching",[10,293,295],{"id":294},"example-code","Example code",[297,298,300],"h3",{"id":299},"example-1-old-enum-vs-enum-class","Example 1: Old enum vs enum class",[132,302,304],{"className":134,"code":303,"language":136,"meta":137,"style":137},"#include \u003Ciostream>\n\n\u002F\u002F 旧式 enum（不推荐）\nenum OldColor { red, green, blue };\n\n\u002F\u002F enum class（推荐）\nenum class Color { red, green, blue };\n\nint main()\n{\n    \u002F\u002F 旧式 enum：名字污染，red 直接可见\n    OldColor oc = red;  \u002F\u002F 直接写 red\n    int n = red;         \u002F\u002F 隐式转为 0\n\n    \u002F\u002F enum class：需要带作用域\n    Color c = Color::red;\n\n    \u002F\u002F int m = Color::red;  \u002F\u002F ❌ 编译错误！不会隐式转换为 int\n    int m = static_cast\u003Cint>(Color::red);  \u002F\u002F ✅ 显式转换\n\n    std::cout \u003C\u003C \"OldColor red = \" \u003C\u003C n \u003C\u003C \"\\n\";\n    std::cout \u003C\u003C \"Color::red = \" \u003C\u003C m \u003C\u003C \"\\n\";\n\n    return 0;\n}\n",[19,305,306,315,319,324,351,355,360,383,387,398,403,409,423,439,444,450,463,468,477,502,507,541,567,572,583],{"__ignoreMap":137},[141,307,308,311],{"class":143,"line":144},[141,309,310],{"class":147},"#include",[141,312,314],{"class":313},"sZZnC"," \u003Ciostream>\n",[141,316,317],{"class":143,"line":157},[141,318,191],{"emptyLinePlaceholder":190},[141,320,321],{"class":143,"line":163},[141,322,323],{"class":197},"\u002F\u002F 旧式 enum（不推荐）\n",[141,325,326,328,332,335,338,340,343,345,348],{"class":143,"line":169},[141,327,21],{"class":147},[141,329,331],{"class":330},"sScJk"," OldColor",[141,333,334],{"class":153}," { ",[141,336,40],{"class":337},"sj4cs",[141,339,37],{"class":153},[141,341,342],{"class":337},"green",[141,344,37],{"class":153},[141,346,347],{"class":337},"blue",[141,349,350],{"class":153}," };\n",[141,352,353],{"class":143,"line":175},[141,354,191],{"emptyLinePlaceholder":190},[141,356,357],{"class":143,"line":181},[141,358,359],{"class":197},"\u002F\u002F enum class（推荐）\n",[141,361,362,364,366,369,371,373,375,377,379,381],{"class":143,"line":187},[141,363,21],{"class":147},[141,365,150],{"class":147},[141,367,368],{"class":330}," Color",[141,370,334],{"class":153},[141,372,40],{"class":337},[141,374,37],{"class":153},[141,376,342],{"class":337},[141,378,37],{"class":153},[141,380,347],{"class":337},[141,382,350],{"class":153},[141,384,385],{"class":143,"line":194},[141,386,191],{"emptyLinePlaceholder":190},[141,388,389,392,395],{"class":143,"line":201},[141,390,391],{"class":147},"int",[141,393,394],{"class":330}," main",[141,396,397],{"class":153},"()\n",[141,399,401],{"class":143,"line":400},10,[141,402,160],{"class":153},[141,404,406],{"class":143,"line":405},11,[141,407,408],{"class":197},"    \u002F\u002F 旧式 enum：名字污染，red 直接可见\n",[141,410,412,415,417,420],{"class":143,"line":411},12,[141,413,414],{"class":153},"    OldColor oc ",[141,416,207],{"class":147},[141,418,419],{"class":153}," red;",[141,421,422],{"class":197},"  \u002F\u002F 直接写 red\n",[141,424,426,429,432,434,436],{"class":143,"line":425},13,[141,427,428],{"class":147},"    int",[141,430,431],{"class":153}," n ",[141,433,207],{"class":147},[141,435,419],{"class":153},[141,437,438],{"class":197},"         \u002F\u002F 隐式转为 0\n",[141,440,442],{"class":143,"line":441},14,[141,443,191],{"emptyLinePlaceholder":190},[141,445,447],{"class":143,"line":446},15,[141,448,449],{"class":197},"    \u002F\u002F enum class：需要带作用域\n",[141,451,453,456,458,460],{"class":143,"line":452},16,[141,454,455],{"class":153},"    Color c ",[141,457,207],{"class":147},[141,459,368],{"class":330},[141,461,462],{"class":153},"::red;\n",[141,464,466],{"class":143,"line":465},17,[141,467,191],{"emptyLinePlaceholder":190},[141,469,471,474],{"class":143,"line":470},18,[141,472,473],{"class":197},"    \u002F\u002F int m = Color::red;",[141,475,476],{"class":197},"  \u002F\u002F ❌ 编译错误！不会隐式转换为 int\n",[141,478,480,482,485,487,490,493,496,499],{"class":143,"line":479},19,[141,481,428],{"class":147},[141,483,484],{"class":153}," m ",[141,486,207],{"class":147},[141,488,489],{"class":147}," static_cast\u003Cint>",[141,491,492],{"class":153},"(",[141,494,495],{"class":330},"Color",[141,497,498],{"class":153},"::red);",[141,500,501],{"class":197},"  \u002F\u002F ✅ 显式转换\n",[141,503,505],{"class":143,"line":504},20,[141,506,191],{"emptyLinePlaceholder":190},[141,508,510,513,516,519,522,525,527,529,532,535,538],{"class":143,"line":509},21,[141,511,512],{"class":330},"    std",[141,514,515],{"class":153},"::cout ",[141,517,518],{"class":147},"\u003C\u003C",[141,520,521],{"class":313}," \"OldColor red = \"",[141,523,524],{"class":147}," \u003C\u003C",[141,526,431],{"class":153},[141,528,518],{"class":147},[141,530,531],{"class":313}," \"",[141,533,534],{"class":337},"\\n",[141,536,537],{"class":313},"\"",[141,539,540],{"class":153},";\n",[141,542,544,546,548,550,553,555,557,559,561,563,565],{"class":143,"line":543},22,[141,545,512],{"class":330},[141,547,515],{"class":153},[141,549,518],{"class":147},[141,551,552],{"class":313}," \"Color::red = \"",[141,554,524],{"class":147},[141,556,484],{"class":153},[141,558,518],{"class":147},[141,560,531],{"class":313},[141,562,534],{"class":337},[141,564,537],{"class":313},[141,566,540],{"class":153},[141,568,570],{"class":143,"line":569},23,[141,571,191],{"emptyLinePlaceholder":190},[141,573,575,578,581],{"class":143,"line":574},24,[141,576,577],{"class":147},"    return",[141,579,580],{"class":337}," 0",[141,582,540],{"class":153},[141,584,586],{"class":143,"line":585},25,[141,587,588],{"class":153},"}\n",[15,590,591,594],{},[30,592,593],{},"Results","：",[132,596,601],{"className":597,"code":599,"language":600},[598],"language-text","OldColor red = 0\nColor::red = 0\n","text",[19,602,599],{"__ignoreMap":137},[297,604,606],{"id":605},"example-2-based-on-example-1-specifying-underlying-types-and-custom-values","Example 2: Based on Example 1, specifying underlying types and custom values",[132,608,610],{"className":134,"code":609,"language":136,"meta":137,"style":137},"#include \u003Ccstdint>\n#include \u003Ciostream>\n\n\u002F\u002F 指定底层类型为 uint8_t（只占一个字节）\nenum class Status : uint8_t\n{\n    Idle = 0,\n    Running = 10,\n    Paused = 20,\n    Stopped = 30\n};\n\nvoid print_status(Status s)\n{\n    switch (s)\n    {\n        case Status::Idle:\n            std::cout \u003C\u003C \"Idle\\n\";\n            break;\n        case Status::Running:\n            std::cout \u003C\u003C \"Running\\n\";\n            break;\n        case Status::Paused:\n            std::cout \u003C\u003C \"Paused\\n\";\n            break;\n        case Status::Stopped:\n            std::cout \u003C\u003C \"Stopped\\n\";\n            break;\n    }\n}\n\nint main()\n{\n    Status s1 = Status::Running;\n    print_status(s1);\n    print_status(Status::Stopped);\n\n    \u002F\u002F 查看底层整数值\n    std::cout \u003C\u003C \"sizeof(Status) = \" \u003C\u003C sizeof(Status) \u003C\u003C \" byte(s)\\n\";\n    std::cout \u003C\u003C \"Running = \" \u003C\u003C static_cast\u003Cint>(Status::Running) \u003C\u003C \"\\n\";\n\n    return 0;\n}\n",[19,611,612,619,625,629,634,649,653,666,678,690,700,704,708,728,732,740,745,755,773,780,789,806,812,821,838,844,854,872,879,885,890,895,904,909,922,931,943,948,954,985,1018,1023,1032],{"__ignoreMap":137},[141,613,614,616],{"class":143,"line":144},[141,615,310],{"class":147},[141,617,618],{"class":313}," \u003Ccstdint>\n",[141,620,621,623],{"class":143,"line":157},[141,622,310],{"class":147},[141,624,314],{"class":313},[141,626,627],{"class":143,"line":163},[141,628,191],{"emptyLinePlaceholder":190},[141,630,631],{"class":143,"line":169},[141,632,633],{"class":197},"\u002F\u002F 指定底层类型为 uint8_t（只占一个字节）\n",[141,635,636,638,640,643,646],{"class":143,"line":175},[141,637,21],{"class":147},[141,639,150],{"class":147},[141,641,642],{"class":330}," Status",[141,644,645],{"class":153}," : ",[141,647,648],{"class":147},"uint8_t\n",[141,650,651],{"class":143,"line":181},[141,652,160],{"class":153},[141,654,655,658,661,663],{"class":143,"line":187},[141,656,657],{"class":337},"    Idle",[141,659,660],{"class":147}," =",[141,662,580],{"class":337},[141,664,665],{"class":153},",\n",[141,667,668,671,673,676],{"class":143,"line":194},[141,669,670],{"class":337},"    Running",[141,672,660],{"class":147},[141,674,675],{"class":337}," 10",[141,677,665],{"class":153},[141,679,680,683,685,688],{"class":143,"line":201},[141,681,682],{"class":337},"    Paused",[141,684,660],{"class":147},[141,686,687],{"class":337}," 20",[141,689,665],{"class":153},[141,691,692,695,697],{"class":143,"line":400},[141,693,694],{"class":337},"    Stopped",[141,696,660],{"class":147},[141,698,699],{"class":337}," 30\n",[141,701,702],{"class":143,"line":405},[141,703,184],{"class":153},[141,705,706],{"class":143,"line":411},[141,707,191],{"emptyLinePlaceholder":190},[141,709,710,713,716,718,721,725],{"class":143,"line":425},[141,711,712],{"class":147},"void",[141,714,715],{"class":330}," print_status",[141,717,492],{"class":153},[141,719,720],{"class":330},"Status",[141,722,724],{"class":723},"s4XuR"," s",[141,726,727],{"class":153},")\n",[141,729,730],{"class":143,"line":441},[141,731,160],{"class":153},[141,733,734,737],{"class":143,"line":446},[141,735,736],{"class":147},"    switch",[141,738,739],{"class":153}," (s)\n",[141,741,742],{"class":143,"line":452},[141,743,744],{"class":153},"    {\n",[141,746,747,750,752],{"class":143,"line":465},[141,748,749],{"class":147},"        case",[141,751,642],{"class":330},[141,753,754],{"class":153},"::Idle:\n",[141,756,757,760,762,764,767,769,771],{"class":143,"line":470},[141,758,759],{"class":330},"            std",[141,761,515],{"class":153},[141,763,518],{"class":147},[141,765,766],{"class":313}," \"Idle",[141,768,534],{"class":337},[141,770,537],{"class":313},[141,772,540],{"class":153},[141,774,775,778],{"class":143,"line":479},[141,776,777],{"class":147},"            break",[141,779,540],{"class":153},[141,781,782,784,786],{"class":143,"line":504},[141,783,749],{"class":147},[141,785,642],{"class":330},[141,787,788],{"class":153},"::Running:\n",[141,790,791,793,795,797,800,802,804],{"class":143,"line":509},[141,792,759],{"class":330},[141,794,515],{"class":153},[141,796,518],{"class":147},[141,798,799],{"class":313}," \"Running",[141,801,534],{"class":337},[141,803,537],{"class":313},[141,805,540],{"class":153},[141,807,808,810],{"class":143,"line":543},[141,809,777],{"class":147},[141,811,540],{"class":153},[141,813,814,816,818],{"class":143,"line":569},[141,815,749],{"class":147},[141,817,642],{"class":330},[141,819,820],{"class":153},"::Paused:\n",[141,822,823,825,827,829,832,834,836],{"class":143,"line":574},[141,824,759],{"class":330},[141,826,515],{"class":153},[141,828,518],{"class":147},[141,830,831],{"class":313}," \"Paused",[141,833,534],{"class":337},[141,835,537],{"class":313},[141,837,540],{"class":153},[141,839,840,842],{"class":143,"line":585},[141,841,777],{"class":147},[141,843,540],{"class":153},[141,845,847,849,851],{"class":143,"line":846},26,[141,848,749],{"class":147},[141,850,642],{"class":330},[141,852,853],{"class":153},"::Stopped:\n",[141,855,857,859,861,863,866,868,870],{"class":143,"line":856},27,[141,858,759],{"class":330},[141,860,515],{"class":153},[141,862,518],{"class":147},[141,864,865],{"class":313}," \"Stopped",[141,867,534],{"class":337},[141,869,537],{"class":313},[141,871,540],{"class":153},[141,873,875,877],{"class":143,"line":874},28,[141,876,777],{"class":147},[141,878,540],{"class":153},[141,880,882],{"class":143,"line":881},29,[141,883,884],{"class":153},"    }\n",[141,886,888],{"class":143,"line":887},30,[141,889,588],{"class":153},[141,891,893],{"class":143,"line":892},31,[141,894,191],{"emptyLinePlaceholder":190},[141,896,898,900,902],{"class":143,"line":897},32,[141,899,391],{"class":147},[141,901,394],{"class":330},[141,903,397],{"class":153},[141,905,907],{"class":143,"line":906},33,[141,908,160],{"class":153},[141,910,912,915,917,919],{"class":143,"line":911},34,[141,913,914],{"class":153},"    Status s1 ",[141,916,207],{"class":147},[141,918,642],{"class":330},[141,920,921],{"class":153},"::Running;\n",[141,923,925,928],{"class":143,"line":924},35,[141,926,927],{"class":330},"    print_status",[141,929,930],{"class":153},"(s1);\n",[141,932,934,936,938,940],{"class":143,"line":933},36,[141,935,927],{"class":330},[141,937,492],{"class":153},[141,939,720],{"class":330},[141,941,942],{"class":153},"::Stopped);\n",[141,944,946],{"class":143,"line":945},37,[141,947,191],{"emptyLinePlaceholder":190},[141,949,951],{"class":143,"line":950},38,[141,952,953],{"class":197},"    \u002F\u002F 查看底层整数值\n",[141,955,957,959,961,963,966,968,971,974,976,979,981,983],{"class":143,"line":956},39,[141,958,512],{"class":330},[141,960,515],{"class":153},[141,962,518],{"class":147},[141,964,965],{"class":313}," \"sizeof(Status) = \"",[141,967,524],{"class":147},[141,969,970],{"class":147}," sizeof",[141,972,973],{"class":153},"(Status) ",[141,975,518],{"class":147},[141,977,978],{"class":313}," \" byte(s)",[141,980,534],{"class":337},[141,982,537],{"class":313},[141,984,540],{"class":153},[141,986,988,990,992,994,997,999,1001,1003,1005,1008,1010,1012,1014,1016],{"class":143,"line":987},40,[141,989,512],{"class":330},[141,991,515],{"class":153},[141,993,518],{"class":147},[141,995,996],{"class":313}," \"Running = \"",[141,998,524],{"class":147},[141,1000,489],{"class":147},[141,1002,492],{"class":153},[141,1004,720],{"class":330},[141,1006,1007],{"class":153},"::Running) ",[141,1009,518],{"class":147},[141,1011,531],{"class":313},[141,1013,534],{"class":337},[141,1015,537],{"class":313},[141,1017,540],{"class":153},[141,1019,1021],{"class":143,"line":1020},41,[141,1022,191],{"emptyLinePlaceholder":190},[141,1024,1026,1028,1030],{"class":143,"line":1025},42,[141,1027,577],{"class":147},[141,1029,580],{"class":337},[141,1031,540],{"class":153},[141,1033,1035],{"class":143,"line":1034},43,[141,1036,588],{"class":153},[15,1038,1039,594],{},[30,1040,593],{},[132,1042,1045],{"className":1043,"code":1044,"language":600},[598],"Running\nStopped\nsizeof(Status) = 1 byte(s)\nRunning = 10\n",[19,1046,1044],{"__ignoreMap":137},[297,1048,1050],{"id":1049},"example-3-building-on-example-2-the-application-of-enum-class-within-a-struct","Example 3: Building on Example 2, the application of enum class within a struct.",[132,1052,1054],{"className":134,"code":1053,"language":136,"meta":137,"style":137},"#include \u003Ciostream>\n#include \u003Cstring>\n\nenum class Grade\n{\n    A = 90,\n    B = 80,\n    C = 70,\n    D = 60,\n    F = 0\n};\n\nstruct Student\n{\n    std::string name;\n    Grade grade;\n};\n\nstd::string grade_to_string(Grade g)\n{\n    switch (g)\n    {\n        case Grade::A: return \"A (优秀)\";\n        case Grade::B: return \"B (良好)\";\n        case Grade::C: return \"C (中等)\";\n        case Grade::D: return \"D (及格)\";\n        case Grade::F: return \"F (不及格)\";\n        default:       return \"未知\";\n    }\n}\n\nint main()\n{\n    Student s1{\"Alice\", Grade::A};\n    Student s2{\"Bob\", Grade::C};\n\n    std::cout \u003C\u003C s1.name \u003C\u003C \" grade: \" \u003C\u003C grade_to_string(s1.grade) \u003C\u003C \"\\n\";\n    std::cout \u003C\u003C s2.name \u003C\u003C \" grade: \" \u003C\u003C grade_to_string(s2.grade) \u003C\u003C \"\\n\";\n\n    \u002F\u002F 比较（enum class 支持 ==, \u003C, > 等）\n    if (s1.grade > s2.grade)\n    {\n        std::cout \u003C\u003C s1.name \u003C\u003C \" has higher grade\\n\";\n    }\n\n    return 0;\n}\n",[19,1055,1056,1062,1069,1073,1082,1086,1098,1110,1122,1134,1144,1148,1152,1160,1164,1171,1176,1180,1184,1208,1212,1219,1223,1241,1257,1273,1289,1305,1320,1324,1328,1332,1340,1344,1359,1374,1378,1411,1443,1447,1452,1466,1470,1492,1497,1502,1511],{"__ignoreMap":137},[141,1057,1058,1060],{"class":143,"line":144},[141,1059,310],{"class":147},[141,1061,314],{"class":313},[141,1063,1064,1066],{"class":143,"line":157},[141,1065,310],{"class":147},[141,1067,1068],{"class":313}," \u003Cstring>\n",[141,1070,1071],{"class":143,"line":163},[141,1072,191],{"emptyLinePlaceholder":190},[141,1074,1075,1077,1079],{"class":143,"line":169},[141,1076,21],{"class":147},[141,1078,150],{"class":147},[141,1080,1081],{"class":330}," Grade\n",[141,1083,1084],{"class":143,"line":175},[141,1085,160],{"class":153},[141,1087,1088,1091,1093,1096],{"class":143,"line":181},[141,1089,1090],{"class":337},"    A",[141,1092,660],{"class":147},[141,1094,1095],{"class":337}," 90",[141,1097,665],{"class":153},[141,1099,1100,1103,1105,1108],{"class":143,"line":187},[141,1101,1102],{"class":337},"    B",[141,1104,660],{"class":147},[141,1106,1107],{"class":337}," 80",[141,1109,665],{"class":153},[141,1111,1112,1115,1117,1120],{"class":143,"line":194},[141,1113,1114],{"class":337},"    C",[141,1116,660],{"class":147},[141,1118,1119],{"class":337}," 70",[141,1121,665],{"class":153},[141,1123,1124,1127,1129,1132],{"class":143,"line":201},[141,1125,1126],{"class":337},"    D",[141,1128,660],{"class":147},[141,1130,1131],{"class":337}," 60",[141,1133,665],{"class":153},[141,1135,1136,1139,1141],{"class":143,"line":400},[141,1137,1138],{"class":337},"    F",[141,1140,660],{"class":147},[141,1142,1143],{"class":337}," 0\n",[141,1145,1146],{"class":143,"line":405},[141,1147,184],{"class":153},[141,1149,1150],{"class":143,"line":411},[141,1151,191],{"emptyLinePlaceholder":190},[141,1153,1154,1157],{"class":143,"line":425},[141,1155,1156],{"class":147},"struct",[141,1158,1159],{"class":330}," Student\n",[141,1161,1162],{"class":143,"line":441},[141,1163,160],{"class":153},[141,1165,1166,1168],{"class":143,"line":446},[141,1167,512],{"class":330},[141,1169,1170],{"class":153},"::string name;\n",[141,1172,1173],{"class":143,"line":452},[141,1174,1175],{"class":153},"    Grade grade;\n",[141,1177,1178],{"class":143,"line":465},[141,1179,184],{"class":153},[141,1181,1182],{"class":143,"line":470},[141,1183,191],{"emptyLinePlaceholder":190},[141,1185,1186,1189,1192,1195,1198,1200,1203,1206],{"class":143,"line":479},[141,1187,1188],{"class":330},"std",[141,1190,1191],{"class":153},"::",[141,1193,1194],{"class":330},"string",[141,1196,1197],{"class":330}," grade_to_string",[141,1199,492],{"class":153},[141,1201,1202],{"class":330},"Grade",[141,1204,1205],{"class":723}," g",[141,1207,727],{"class":153},[141,1209,1210],{"class":143,"line":504},[141,1211,160],{"class":153},[141,1213,1214,1216],{"class":143,"line":509},[141,1215,736],{"class":147},[141,1217,1218],{"class":153}," (g)\n",[141,1220,1221],{"class":143,"line":543},[141,1222,744],{"class":153},[141,1224,1225,1227,1230,1233,1236,1239],{"class":143,"line":569},[141,1226,749],{"class":147},[141,1228,1229],{"class":330}," Grade",[141,1231,1232],{"class":153},"::A: ",[141,1234,1235],{"class":147},"return",[141,1237,1238],{"class":313}," \"A (优秀)\"",[141,1240,540],{"class":153},[141,1242,1243,1245,1247,1250,1252,1255],{"class":143,"line":574},[141,1244,749],{"class":147},[141,1246,1229],{"class":330},[141,1248,1249],{"class":153},"::B: ",[141,1251,1235],{"class":147},[141,1253,1254],{"class":313}," \"B (良好)\"",[141,1256,540],{"class":153},[141,1258,1259,1261,1263,1266,1268,1271],{"class":143,"line":585},[141,1260,749],{"class":147},[141,1262,1229],{"class":330},[141,1264,1265],{"class":153},"::C: ",[141,1267,1235],{"class":147},[141,1269,1270],{"class":313}," \"C (中等)\"",[141,1272,540],{"class":153},[141,1274,1275,1277,1279,1282,1284,1287],{"class":143,"line":846},[141,1276,749],{"class":147},[141,1278,1229],{"class":330},[141,1280,1281],{"class":153},"::D: ",[141,1283,1235],{"class":147},[141,1285,1286],{"class":313}," \"D (及格)\"",[141,1288,540],{"class":153},[141,1290,1291,1293,1295,1298,1300,1303],{"class":143,"line":856},[141,1292,749],{"class":147},[141,1294,1229],{"class":330},[141,1296,1297],{"class":153},"::F: ",[141,1299,1235],{"class":147},[141,1301,1302],{"class":313}," \"F (不及格)\"",[141,1304,540],{"class":153},[141,1306,1307,1310,1313,1315,1318],{"class":143,"line":874},[141,1308,1309],{"class":147},"        default",[141,1311,1312],{"class":153},":       ",[141,1314,1235],{"class":147},[141,1316,1317],{"class":313}," \"未知\"",[141,1319,540],{"class":153},[141,1321,1322],{"class":143,"line":881},[141,1323,884],{"class":153},[141,1325,1326],{"class":143,"line":887},[141,1327,588],{"class":153},[141,1329,1330],{"class":143,"line":892},[141,1331,191],{"emptyLinePlaceholder":190},[141,1333,1334,1336,1338],{"class":143,"line":897},[141,1335,391],{"class":147},[141,1337,394],{"class":330},[141,1339,397],{"class":153},[141,1341,1342],{"class":143,"line":906},[141,1343,160],{"class":153},[141,1345,1346,1349,1352,1354,1356],{"class":143,"line":911},[141,1347,1348],{"class":153},"    Student s1{",[141,1350,1351],{"class":313},"\"Alice\"",[141,1353,37],{"class":153},[141,1355,1202],{"class":330},[141,1357,1358],{"class":153},"::A};\n",[141,1360,1361,1364,1367,1369,1371],{"class":143,"line":924},[141,1362,1363],{"class":153},"    Student s2{",[141,1365,1366],{"class":313},"\"Bob\"",[141,1368,37],{"class":153},[141,1370,1202],{"class":330},[141,1372,1373],{"class":153},"::C};\n",[141,1375,1376],{"class":143,"line":933},[141,1377,191],{"emptyLinePlaceholder":190},[141,1379,1380,1382,1384,1386,1389,1391,1394,1396,1398,1401,1403,1405,1407,1409],{"class":143,"line":945},[141,1381,512],{"class":330},[141,1383,515],{"class":153},[141,1385,518],{"class":147},[141,1387,1388],{"class":153}," s1.name ",[141,1390,518],{"class":147},[141,1392,1393],{"class":313}," \" grade: \"",[141,1395,524],{"class":147},[141,1397,1197],{"class":330},[141,1399,1400],{"class":153},"(s1.grade) ",[141,1402,518],{"class":147},[141,1404,531],{"class":313},[141,1406,534],{"class":337},[141,1408,537],{"class":313},[141,1410,540],{"class":153},[141,1412,1413,1415,1417,1419,1422,1424,1426,1428,1430,1433,1435,1437,1439,1441],{"class":143,"line":950},[141,1414,512],{"class":330},[141,1416,515],{"class":153},[141,1418,518],{"class":147},[141,1420,1421],{"class":153}," s2.name ",[141,1423,518],{"class":147},[141,1425,1393],{"class":313},[141,1427,524],{"class":147},[141,1429,1197],{"class":330},[141,1431,1432],{"class":153},"(s2.grade) ",[141,1434,518],{"class":147},[141,1436,531],{"class":313},[141,1438,534],{"class":337},[141,1440,537],{"class":313},[141,1442,540],{"class":153},[141,1444,1445],{"class":143,"line":956},[141,1446,191],{"emptyLinePlaceholder":190},[141,1448,1449],{"class":143,"line":987},[141,1450,1451],{"class":197},"    \u002F\u002F 比较（enum class 支持 ==, \u003C, > 等）\n",[141,1453,1454,1457,1460,1463],{"class":143,"line":1020},[141,1455,1456],{"class":147},"    if",[141,1458,1459],{"class":153}," (s1.grade ",[141,1461,1462],{"class":147},">",[141,1464,1465],{"class":153}," s2.grade)\n",[141,1467,1468],{"class":143,"line":1025},[141,1469,744],{"class":153},[141,1471,1472,1475,1477,1479,1481,1483,1486,1488,1490],{"class":143,"line":1034},[141,1473,1474],{"class":330},"        std",[141,1476,515],{"class":153},[141,1478,518],{"class":147},[141,1480,1388],{"class":153},[141,1482,518],{"class":147},[141,1484,1485],{"class":313}," \" has higher grade",[141,1487,534],{"class":337},[141,1489,537],{"class":313},[141,1491,540],{"class":153},[141,1493,1495],{"class":143,"line":1494},44,[141,1496,884],{"class":153},[141,1498,1500],{"class":143,"line":1499},45,[141,1501,191],{"emptyLinePlaceholder":190},[141,1503,1505,1507,1509],{"class":143,"line":1504},46,[141,1506,577],{"class":147},[141,1508,580],{"class":337},[141,1510,540],{"class":153},[141,1512,1514],{"class":143,"line":1513},47,[141,1515,588],{"class":153},[15,1517,1518,594],{},[30,1519,593],{},[132,1521,1524],{"className":1522,"code":1523,"language":600},[598],"Alice grade: A (优秀)\nBob grade: C (中等)\nAlice has higher grade\n",[19,1525,1523],{"__ignoreMap":137},[10,1527,1529],{"id":1528},"runtime-results","runtime results",[15,1531,1532],{},"See the \"running results\" for each example above.",[10,1534,1536],{"id":1535},"key-syntax-explanation-in-the-example","Key syntax explanation in the example",[15,1538,1539],{},"|Here is the translation of the provided Simplified Chinese Markdown fragment into natural American English, following all specified rules.",[1541,1542],"hr",{},[216,1544,1545,1566],{},[219,1546,1547],{},[222,1548,1549,1554,1557,1560,1563],{},[225,1550,1551],{"align":227},[30,1552,1553],{},"Example",[225,1555,1556],{"align":227},"Discusses what",[225,1558,1559],{"align":227},"Newly emerged syntax",[225,1561,1562],{"align":227},"Why write it this way",[225,1564,1565],{"align":227},"Precautions",[233,1567,1568,1590,1613],{},[222,1569,1570,1573,1576,1584,1587],{},[238,1571,1572],{"align":227},"Example 1",[238,1574,1575],{"align":227},"Old enum vs enum class",[238,1577,1578,1580,1581],{"align":227},[19,1579,5],{},"、",[19,1582,1583],{},"static_cast\u003Cint>()",[238,1585,1586],{"align":227},"Old enums have namespace pollution and implicit conversion to int; enum class resolves these issues.",[238,1588,1589],{"align":227},"Explicit conversion is required when integer values are needed.",[222,1591,1592,1595,1598,1604,1607],{},[238,1593,1594],{"align":227},"Example 2",[238,1596,1597],{"align":227},"Specify underlying types and switch usage",[238,1599,1600,1603],{"align":227},[19,1601,1602],{},"enum class : uint8_t","、switch + enum class",[238,1605,1606],{"align":227},"Specifying the underlying type can save memory (e.g., in microcontroller scenarios).",[238,1608,1609,1612],{"align":227},[19,1610,1611],{},"sizeof(enum class)"," does not equal the number of members",[222,1614,1615,1618,1627,1629,1631],{},[238,1616,1617],{"align":227},"Example 3",[238,1619,1620,1621,1623,1624,1626],{"align":227},"Using ",[19,1622,5],{}," within a ",[19,1625,1156],{}," in C++ provides a way to encapsulate enumerated types with strong typing and scope control. Here's a concise guide:",[238,1628],{"align":227},[238,1630],{"align":227},[238,1632],{"align":227},[297,1634,1636],{"id":1635},"_1-basic-definition","1. Basic Definition",[132,1638,1640],{"className":134,"code":1639,"language":136,"meta":137,"style":137},"struct Robot {\n    enum class Direction { Forward, Backward, Left, Right };\n    Direction currentDirection = Direction::Forward;\n};\n",[19,1641,1642,1652,1684,1696],{"__ignoreMap":137},[141,1643,1644,1646,1649],{"class":143,"line":144},[141,1645,1156],{"class":147},[141,1647,1648],{"class":330}," Robot",[141,1650,1651],{"class":153}," {\n",[141,1653,1654,1657,1659,1662,1664,1667,1669,1672,1674,1677,1679,1682],{"class":143,"line":157},[141,1655,1656],{"class":147},"    enum",[141,1658,150],{"class":147},[141,1660,1661],{"class":330}," Direction",[141,1663,334],{"class":153},[141,1665,1666],{"class":337},"Forward",[141,1668,37],{"class":153},[141,1670,1671],{"class":337},"Backward",[141,1673,37],{"class":153},[141,1675,1676],{"class":337},"Left",[141,1678,37],{"class":153},[141,1680,1681],{"class":337},"Right",[141,1683,350],{"class":153},[141,1685,1686,1689,1691,1693],{"class":143,"line":163},[141,1687,1688],{"class":153},"    Direction currentDirection ",[141,1690,207],{"class":147},[141,1692,1661],{"class":330},[141,1694,1695],{"class":153},"::Forward;\n",[141,1697,1698],{"class":143,"line":169},[141,1699,184],{"class":153},[297,1701,1703],{"id":1702},"_2-accessing-members","2. Accessing Members",[132,1705,1707],{"className":134,"code":1706,"language":136,"meta":137,"style":137},"Robot myRobot;\nmyRobot.currentDirection = Robot::Direction::Left;\n",[19,1708,1709,1714],{"__ignoreMap":137},[141,1710,1711],{"class":143,"line":144},[141,1712,1713],{"class":153},"Robot myRobot;\n",[141,1715,1716,1719,1721,1723,1725,1728],{"class":143,"line":157},[141,1717,1718],{"class":153},"myRobot.currentDirection ",[141,1720,207],{"class":147},[141,1722,1648],{"class":330},[141,1724,1191],{"class":153},[141,1726,1727],{"class":330},"Direction",[141,1729,1730],{"class":153},"::Left;\n",[297,1732,1734],{"id":1733},"_3-benefits","3. Benefits",[73,1736,1737,1743,1752],{},[27,1738,1739,1742],{},[30,1740,1741],{},"Type Safety",": Prevents implicit conversions to\u002Ffrom integers.",[27,1744,1745,1748,1749,102],{},[30,1746,1747],{},"Scoped Access",": Requires explicit enum class namespacing (e.g., ",[19,1750,1751],{},"Robot::Direction::Forward",[27,1753,1754,1757],{},[30,1755,1756],{},"Encapsulation",": Keeps enums tied to the struct’s context, improving code organization.",[297,1759,1761],{"id":1760},"_4-usage-example","4. Usage Example",[132,1763,1765],{"className":134,"code":1764,"language":136,"meta":137,"style":137},"void moveRobot(Robot& robot, Robot::Direction dir) {\n    robot.currentDirection = dir;\n}\n\n\u002F\u002F Call\nmoveRobot(myRobot, Robot::Direction::Right);\n",[19,1766,1767,1799,1809,1813,1817,1822],{"__ignoreMap":137},[141,1768,1769,1771,1774,1776,1779,1782,1785,1787,1789,1791,1793,1796],{"class":143,"line":144},[141,1770,712],{"class":147},[141,1772,1773],{"class":330}," moveRobot",[141,1775,492],{"class":153},[141,1777,1778],{"class":330},"Robot",[141,1780,1781],{"class":147},"&",[141,1783,1784],{"class":723}," robot",[141,1786,37],{"class":153},[141,1788,1778],{"class":330},[141,1790,1191],{"class":153},[141,1792,1727],{"class":330},[141,1794,1795],{"class":723}," dir",[141,1797,1798],{"class":153},") {\n",[141,1800,1801,1804,1806],{"class":143,"line":157},[141,1802,1803],{"class":153},"    robot.currentDirection ",[141,1805,207],{"class":147},[141,1807,1808],{"class":153}," dir;\n",[141,1810,1811],{"class":143,"line":163},[141,1812,588],{"class":153},[141,1814,1815],{"class":143,"line":169},[141,1816,191],{"emptyLinePlaceholder":190},[141,1818,1819],{"class":143,"line":175},[141,1820,1821],{"class":197},"\u002F\u002F Call\n",[141,1823,1824,1827,1830,1832,1834,1836],{"class":143,"line":181},[141,1825,1826],{"class":330},"moveRobot",[141,1828,1829],{"class":153},"(myRobot, ",[141,1831,1778],{"class":330},[141,1833,1191],{"class":153},[141,1835,1727],{"class":330},[141,1837,1838],{"class":153},"::Right);\n",[297,1840,1842],{"id":1841},"_5-best-practices","5. Best Practices",[73,1844,1845,1854,1857],{},[27,1846,1847,1848,1850,1851,1853],{},"Prefer ",[19,1849,5],{}," over plain ",[19,1852,21],{}," for safety.",[27,1855,1856],{},"Use it for attributes closely related to the struct’s purpose (e.g., states, modes).",[27,1858,1859,1860,1862],{},"Combine with ",[19,1861,1156],{}," member functions for cohesive design.",[15,1864,1865,1866,37,1869,37,1872,1874],{},"This pattern is common in robotics (e.g., defining sensor states or motor commands) and aligns with clean, maintainable code principles.|Using enum class as struct member, comparison operations|A finite set of values representing states, levels, etc.|Enum class supports comparisons using ",[19,1867,1868],{},"==",[19,1870,1871],{},"\u003C",[19,1873,1462],{},", etc.|",[10,1876,1878],{"id":1877},"enum-class-is-well-suited-for-representing-states-and-options","Enum class is well-suited for representing states and options.",[15,1880,1881,1883],{},[19,1882,5],{}," is best for representing \"a limited number of discrete values,\" such as robot states, task phases, communication protocol commands, and UI modes.",[297,1885,1887],{"id":1886},"example-4-representing-robot-states-with-enum-class","Example 4: Representing robot states with enum class",[132,1889,1891],{"className":134,"code":1890,"language":136,"meta":137,"style":137},"#include \u003Ciostream>\n\nenum class RobotState\n{\n    Idle,\n    Running,\n    Error\n};\n\nvoid handle_state(RobotState state)\n{\n    switch (state)\n    {\n        case RobotState::Idle:\n            std::cout \u003C\u003C \"wait for command\\n\";\n            break;\n        case RobotState::Running:\n            std::cout \u003C\u003C \"execute task\\n\";\n            break;\n        case RobotState::Error:\n            std::cout \u003C\u003C \"stop and report error\\n\";\n            break;\n    }\n}\n\nint main()\n{\n    \u002F\u002F 程序从 main 函数开始执行，下面的语句会按顺序运行。\n    RobotState state = RobotState::Running;\n    handle_state(state);\n\n    \u002F\u002F 返回 0 表示程序正常结束。\n    return 0;\n}\n",[19,1892,1893,1899,1903,1912,1916,1922,1928,1933,1937,1941,1958,1962,1969,1973,1982,1999,2005,2013,2030,2036,2045,2062,2068,2072,2076,2080,2088,2092,2097,2108,2116,2120,2125,2133],{"__ignoreMap":137},[141,1894,1895,1897],{"class":143,"line":144},[141,1896,310],{"class":147},[141,1898,314],{"class":313},[141,1900,1901],{"class":143,"line":157},[141,1902,191],{"emptyLinePlaceholder":190},[141,1904,1905,1907,1909],{"class":143,"line":163},[141,1906,21],{"class":147},[141,1908,150],{"class":147},[141,1910,1911],{"class":330}," RobotState\n",[141,1913,1914],{"class":143,"line":169},[141,1915,160],{"class":153},[141,1917,1918,1920],{"class":143,"line":175},[141,1919,657],{"class":337},[141,1921,665],{"class":153},[141,1923,1924,1926],{"class":143,"line":181},[141,1925,670],{"class":337},[141,1927,665],{"class":153},[141,1929,1930],{"class":143,"line":187},[141,1931,1932],{"class":337},"    Error\n",[141,1934,1935],{"class":143,"line":194},[141,1936,184],{"class":153},[141,1938,1939],{"class":143,"line":201},[141,1940,191],{"emptyLinePlaceholder":190},[141,1942,1943,1945,1948,1950,1953,1956],{"class":143,"line":400},[141,1944,712],{"class":147},[141,1946,1947],{"class":330}," handle_state",[141,1949,492],{"class":153},[141,1951,1952],{"class":330},"RobotState",[141,1954,1955],{"class":723}," state",[141,1957,727],{"class":153},[141,1959,1960],{"class":143,"line":405},[141,1961,160],{"class":153},[141,1963,1964,1966],{"class":143,"line":411},[141,1965,736],{"class":147},[141,1967,1968],{"class":153}," (state)\n",[141,1970,1971],{"class":143,"line":425},[141,1972,744],{"class":153},[141,1974,1975,1977,1980],{"class":143,"line":441},[141,1976,749],{"class":147},[141,1978,1979],{"class":330}," RobotState",[141,1981,754],{"class":153},[141,1983,1984,1986,1988,1990,1993,1995,1997],{"class":143,"line":446},[141,1985,759],{"class":330},[141,1987,515],{"class":153},[141,1989,518],{"class":147},[141,1991,1992],{"class":313}," \"wait for command",[141,1994,534],{"class":337},[141,1996,537],{"class":313},[141,1998,540],{"class":153},[141,2000,2001,2003],{"class":143,"line":452},[141,2002,777],{"class":147},[141,2004,540],{"class":153},[141,2006,2007,2009,2011],{"class":143,"line":465},[141,2008,749],{"class":147},[141,2010,1979],{"class":330},[141,2012,788],{"class":153},[141,2014,2015,2017,2019,2021,2024,2026,2028],{"class":143,"line":470},[141,2016,759],{"class":330},[141,2018,515],{"class":153},[141,2020,518],{"class":147},[141,2022,2023],{"class":313}," \"execute task",[141,2025,534],{"class":337},[141,2027,537],{"class":313},[141,2029,540],{"class":153},[141,2031,2032,2034],{"class":143,"line":479},[141,2033,777],{"class":147},[141,2035,540],{"class":153},[141,2037,2038,2040,2042],{"class":143,"line":504},[141,2039,749],{"class":147},[141,2041,1979],{"class":330},[141,2043,2044],{"class":153},"::Error:\n",[141,2046,2047,2049,2051,2053,2056,2058,2060],{"class":143,"line":509},[141,2048,759],{"class":330},[141,2050,515],{"class":153},[141,2052,518],{"class":147},[141,2054,2055],{"class":313}," \"stop and report error",[141,2057,534],{"class":337},[141,2059,537],{"class":313},[141,2061,540],{"class":153},[141,2063,2064,2066],{"class":143,"line":543},[141,2065,777],{"class":147},[141,2067,540],{"class":153},[141,2069,2070],{"class":143,"line":569},[141,2071,884],{"class":153},[141,2073,2074],{"class":143,"line":574},[141,2075,588],{"class":153},[141,2077,2078],{"class":143,"line":585},[141,2079,191],{"emptyLinePlaceholder":190},[141,2081,2082,2084,2086],{"class":143,"line":846},[141,2083,391],{"class":147},[141,2085,394],{"class":330},[141,2087,397],{"class":153},[141,2089,2090],{"class":143,"line":856},[141,2091,160],{"class":153},[141,2093,2094],{"class":143,"line":874},[141,2095,2096],{"class":197},"    \u002F\u002F 程序从 main 函数开始执行，下面的语句会按顺序运行。\n",[141,2098,2099,2102,2104,2106],{"class":143,"line":881},[141,2100,2101],{"class":153},"    RobotState state ",[141,2103,207],{"class":147},[141,2105,1979],{"class":330},[141,2107,921],{"class":153},[141,2109,2110,2113],{"class":143,"line":887},[141,2111,2112],{"class":330},"    handle_state",[141,2114,2115],{"class":153},"(state);\n",[141,2117,2118],{"class":143,"line":892},[141,2119,191],{"emptyLinePlaceholder":190},[141,2121,2122],{"class":143,"line":897},[141,2123,2124],{"class":197},"    \u002F\u002F 返回 0 表示程序正常结束。\n",[141,2126,2127,2129,2131],{"class":143,"line":906},[141,2128,577],{"class":147},[141,2130,580],{"class":337},[141,2132,540],{"class":153},[141,2134,2135],{"class":143,"line":911},[141,2136,588],{"class":153},[15,2138,2139,594],{},[30,2140,593],{},[132,2142,2145],{"className":2143,"code":2144,"language":600},[598],"execute task\n",[19,2146,2144],{"__ignoreMap":137},[15,2148,2149,2150,2153,2154,2157,2158,2161,2162,85],{},"If using ",[19,2151,2152],{},"int state = 1",", readers won’t know what ",[19,2155,2156],{},"1"," is; if using ",[19,2159,2160],{},"enum class RobotState::Running",", the semantics are directly written in the type and won’t be confused with other enums’ ",[19,2163,2164],{},"Running",[10,2166,2168],{"id":2167},"common-errors","Common Errors",[15,2170,2171],{},[30,2172,2173],{},"Error 1: Directly using enum class values as array subscripts",[132,2175,2177],{"className":134,"code":2176,"language":136,"meta":137,"style":137},"enum class Color { red, green, blue };\nint counts[3];\ncounts[Color::red];  \u002F\u002F ❌ 编译错误！不会隐式转换\n",[19,2178,2179,2201,2214],{"__ignoreMap":137},[141,2180,2181,2183,2185,2187,2189,2191,2193,2195,2197,2199],{"class":143,"line":144},[141,2182,21],{"class":147},[141,2184,150],{"class":147},[141,2186,368],{"class":330},[141,2188,334],{"class":153},[141,2190,40],{"class":337},[141,2192,37],{"class":153},[141,2194,342],{"class":337},[141,2196,37],{"class":153},[141,2198,347],{"class":337},[141,2200,350],{"class":153},[141,2202,2203,2205,2208,2211],{"class":143,"line":157},[141,2204,391],{"class":147},[141,2206,2207],{"class":153}," counts[",[141,2209,2210],{"class":337},"3",[141,2212,2213],{"class":153},"];\n",[141,2215,2216,2219,2221,2224],{"class":143,"line":163},[141,2217,2218],{"class":153},"counts[",[141,2220,495],{"class":330},[141,2222,2223],{"class":153},"::red];",[141,2225,2226],{"class":197},"  \u002F\u002F ❌ 编译错误！不会隐式转换\n",[15,2228,2229,2230,2233],{},"The correct approach: ",[19,2231,2232],{},"counts[static_cast\u003Cint>(Color::red)]",", or consider using a map in this scenario.",[15,2235,2236],{},[30,2237,2238],{},"Error 2: forgetting to write the scope prefix",[132,2240,2242],{"className":134,"code":2241,"language":136,"meta":137,"style":137},"enum class Status { Running, Stopped };\nStatus s = Running;  \u002F\u002F ❌ 编译错误！缺少 Status::\n",[19,2243,2244,2263],{"__ignoreMap":137},[141,2245,2246,2248,2250,2252,2254,2256,2258,2261],{"class":143,"line":144},[141,2247,21],{"class":147},[141,2249,150],{"class":147},[141,2251,642],{"class":330},[141,2253,334],{"class":153},[141,2255,2164],{"class":337},[141,2257,37],{"class":153},[141,2259,2260],{"class":337},"Stopped",[141,2262,350],{"class":153},[141,2264,2265,2268,2270,2273],{"class":143,"line":157},[141,2266,2267],{"class":153},"Status s ",[141,2269,207],{"class":147},[141,2271,2272],{"class":153}," Running;",[141,2274,2275],{"class":197},"  \u002F\u002F ❌ 编译错误！缺少 Status::\n",[15,2277,2278,2279],{},"Correct approach: ",[19,2280,2281],{},"Status s = Status::Running;",[15,2283,2284],{},[30,2285,2286],{},"Error 3: Mixing different enum class values in switch statement",[132,2288,2290],{"className":134,"code":2289,"language":136,"meta":137,"style":137},"switch (status)\n{\n    case Status::Running:  \u002F\u002F ✅ 正确\n    case Machine::Running: \u002F\u002F ❌ 编译错误！不同枚举类型\n        break;\n}\n",[19,2291,2292,2300,2304,2320,2336,2343],{"__ignoreMap":137},[141,2293,2294,2297],{"class":143,"line":144},[141,2295,2296],{"class":147},"switch",[141,2298,2299],{"class":153}," (status)\n",[141,2301,2302],{"class":143,"line":157},[141,2303,160],{"class":153},[141,2305,2306,2309,2311,2313,2315,2317],{"class":143,"line":163},[141,2307,2308],{"class":147},"    case",[141,2310,642],{"class":330},[141,2312,1191],{"class":153},[141,2314,2164],{"class":330},[141,2316,22],{"class":153},[141,2318,2319],{"class":197},"  \u002F\u002F ✅ 正确\n",[141,2321,2322,2324,2327,2329,2331,2333],{"class":143,"line":169},[141,2323,2308],{"class":147},[141,2325,2326],{"class":330}," Machine",[141,2328,1191],{"class":153},[141,2330,2164],{"class":330},[141,2332,22],{"class":153},[141,2334,2335],{"class":197}," \u002F\u002F ❌ 编译错误！不同枚举类型\n",[141,2337,2338,2341],{"class":143,"line":175},[141,2339,2340],{"class":147},"        break",[141,2342,540],{"class":153},[141,2344,2345],{"class":143,"line":181},[141,2346,588],{"class":153},[15,2348,2349],{},"Correct practice: in a switch statement, the case labels must be of the same enumeration type as the switch expression.",[10,2351,2352],{"id":2352},"使用建议",[73,2354,2355,2358,2361,2364,2367],{},[27,2356,2357],{},"明确目标：在开始前确定您的具体需求，以便选择最合适的工具或教程。",[27,2359,2360],{},"充分利用资源：参考官方文档、教程和博客，这些资料能帮助您快速上手并解决问题。",[27,2362,2363],{},"实践应用：通过动手操作项目或编写代码来巩固学习成果，提升实际操作能力。",[27,2365,2366],{},"问题解决：遇到困难时，查阅参考资料或寻求社区支持，逐步培养独立解决问题的能力。",[27,2368,2369],{},"分享经验：完成项目后，可以撰写文章或博客分享心得，帮助其他学习者。",[15,2371,2372],{},"如果需要针对特定领域（如单片机、机器人或环境搭建）的进一步建议，请提供更多信息，我将为您细化内容。",[24,2374,2375,2386,2395,2405],{},[27,2376,2377,2385],{},[30,2378,2379,2380,2382,2383],{},"Always use ",[19,2381,5],{}," instead of the old ",[19,2384,21],{},": type-safe, clear scoping.",[27,2387,2388,2391,2392,2394],{},[30,2389,2390],{},"Can specify underlying type",": Used in embedded scenarios with ",[19,2393,1602],{}," to save space.",[27,2396,2397,2404],{},[30,2398,2399,2400,2403],{},"Use ",[19,2401,2402],{},"static_cast"," explicitly when an integer value is required",": Do not rely on implicit conversion.",[27,2406,2407,2410,2411,2414],{},[30,2408,2409],{},"Enum classes are still integers, and can be switched on",": combine with ",[19,2412,2413],{},"default"," branch handling for unknown values.",[10,2416,2418],{"id":2417},"summary","Summary",[73,2420,2421,2429,2435,2441],{},[27,2422,2423,2425,2426,85],{},[19,2424,5],{}," avoids name pollution by accessing enum values through ",[19,2427,2428],{},"枚举名::值",[27,2430,2431,2432,2434],{},"Does not implicitly convert to an integer, requiring ",[19,2433,2402],{}," explicit conversion.",[27,2436,2437,2438,102],{},"can specify the underlying type (",[19,2439,2440],{},"enum class E : uint8_t",[27,2442,2443],{},"Suitable for representing a finite discrete set of values such as states, levels, or options.",[2445,2446,2447],"style",{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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 pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"title":137,"searchDepth":157,"depth":157,"links":2449},[2450,2451,2452,2453,2454,2455,2456,2461,2462,2469,2472,2473,2474],{"id":12,"depth":157,"text":13},{"id":65,"depth":157,"text":66},{"id":105,"depth":157,"text":106},{"id":112,"depth":157,"text":113},{"id":129,"depth":157,"text":130},{"id":213,"depth":157,"text":214},{"id":294,"depth":157,"text":295,"children":2457},[2458,2459,2460],{"id":299,"depth":163,"text":300},{"id":605,"depth":163,"text":606},{"id":1049,"depth":163,"text":1050},{"id":1528,"depth":157,"text":1529},{"id":1535,"depth":157,"text":1536,"children":2463},[2464,2465,2466,2467,2468],{"id":1635,"depth":163,"text":1636},{"id":1702,"depth":163,"text":1703},{"id":1733,"depth":163,"text":1734},{"id":1760,"depth":163,"text":1761},{"id":1841,"depth":163,"text":1842},{"id":1877,"depth":157,"text":1878,"children":2470},[2471],{"id":1886,"depth":163,"text":1887},{"id":2167,"depth":157,"text":2168},{"id":2352,"depth":157,"text":2352},{"id":2417,"depth":157,"text":2418},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0400-enum-class","2000-0400","2023-10-05","wiki\u002F2023-10-05-cplusplus-jiao-xue","en-us:2023-10-05-cplusplus-jiao-xue","\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue","Cplusplus教学","md","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-0400-enum-class",false,null,"en-US","en-us",{},{"title":5,"description":137},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0400-enum-class","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0400-enum-class","qYhAzcAAUuvK0aKjgF8gENwFsAF2NvUYWubf_jH9Xao",[2494,2500,2505,2510,2515,2520,2525,2530,2535,2540,2545,2550,2555,2560,2565,2570,2575,2580,2585,2590,2595,2600,2605,2610,2615,2620,2625,2630,2635,2640,2645,2650,2655,2660,2665,2670,2675,2680,2685,2690,2695,2696,2701,2706,2711,2716,2721,2726,2731,2736,2741,2746,2751,2756,2761,2766,2771,2776,2781,2786,2791,2796,2801,2806,2811,2816,2821,2826,2831,2836,2841,2846,2851,2856,2861,2866,2871,2876,2881,2886,2891,2896],{"path":2495,"stem":2496,"title":2497,"date":2477,"chapterOrder":2498,"chapterDepth":2499,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0100-c-kai-fa-huan-jing-da-jian-yu-ce-shi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0100-C++开发环境搭建与测试","C++ Development Environment Setup and Testing","0100",0,{"path":2501,"stem":2502,"title":2503,"date":2477,"chapterOrder":2504,"chapterDepth":2499,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0200-c-ji-chu-chu-shi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0200-C++基础初识","C++ Basics","0200",{"path":2506,"stem":2507,"title":2508,"date":2477,"chapterOrder":2509,"chapterDepth":2499,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0300-shu-ju-lei-xing-yu-shu-ju-cun-fang","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0300-数据类型与数据存放","Data Types and Data Storage","0300",{"path":2511,"stem":2512,"title":2513,"date":2477,"chapterOrder":2514,"chapterDepth":2499,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0400-shu-ru-shu-chu","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0400-输入输出","Input and Output","0400",{"path":2516,"stem":2517,"title":2518,"date":2477,"chapterOrder":2519,"chapterDepth":2499,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0500-yun-suan-fu","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0500-运算符","operator","0500",{"path":2521,"stem":2522,"title":2523,"date":2477,"chapterOrder":2524,"chapterDepth":2499,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0600-cheng-xu-liu-cheng-jie-gou","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0600-程序流程结构","program flow structure","0600",{"path":2526,"stem":2527,"title":2528,"date":2477,"chapterOrder":2529,"chapterDepth":2499,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0700-shu-zu","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0700-数组","array","0700",{"path":2531,"stem":2532,"title":2533,"date":2477,"chapterOrder":2534,"chapterDepth":2499,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0800-han-shu-yu-tou-wen-jian","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0800-函数与头文件","Functions and Header Files","0800",{"path":2536,"stem":2537,"title":2538,"date":2477,"chapterOrder":2539,"chapterDepth":2499,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0900-zhi-zhen","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0900-指针","pointer","0900",{"path":2541,"stem":2542,"title":2543,"date":2477,"chapterOrder":2544,"chapterDepth":2499,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1000-jie-gou-ti-yu-gong-yong-ti","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1000-结构体与共用体","Structures and Unions","1000",{"path":2546,"stem":2547,"title":2548,"date":2477,"chapterOrder":2549,"chapterDepth":2499,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1100-nei-cun-fen-qu-yu-sheng-ming-zhou-qi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1100-内存分区与生命周期","Memory Partitioning and Lifecycle","1100",{"path":2551,"stem":2552,"title":2553,"date":2477,"chapterOrder":2554,"chapterDepth":2499,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1200-yin-yong","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1200-引用","reference","1200",{"path":2556,"stem":2557,"title":2558,"date":2477,"chapterOrder":2559,"chapterDepth":2499,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1300-han-shu-ti-gao-yu-ming-ming-kong-jian","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1300-函数提高与命名空间","Advanced Functions and Namespaces","1300",{"path":2561,"stem":2562,"title":2563,"date":2477,"chapterOrder":2564,"chapterDepth":144,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0100-feng-zhuang","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1400-0100-封装","encapsulation","1400-0100",{"path":2566,"stem":2567,"title":2568,"date":2477,"chapterOrder":2569,"chapterDepth":144,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0200-dui-xiang-chu-shi-hua-he-qing-li","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1400-0200-对象初始化和清理","Object initialization and cleanup","1400-0200",{"path":2571,"stem":2572,"title":2573,"date":2477,"chapterOrder":2574,"chapterDepth":144,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0300-dui-xiang-mo-xing-yu-this-zhi-zhen","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1400-0300-对象模型与this指针","Object Model and the `this` Pointer","1400-0300",{"path":2576,"stem":2577,"title":2578,"date":2477,"chapterOrder":2579,"chapterDepth":144,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0400-you-yuan-yu-yun-suan-fu-zhong-zai","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1400-0400-友元与运算符重载","Friends and operator overloading","1400-0400",{"path":2581,"stem":2582,"title":2583,"date":2477,"chapterOrder":2584,"chapterDepth":144,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0500-ji-cheng","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1400-0500-继承","inheritance","1400-0500",{"path":2586,"stem":2587,"title":2588,"date":2477,"chapterOrder":2589,"chapterDepth":144,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0600-duo-tai","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1400-0600-多态","polymorphism","1400-0600",{"path":2591,"stem":2592,"title":2593,"date":2477,"chapterOrder":2594,"chapterDepth":2499,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-lei-he-dui-xiang","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1400-类和对象","Classes and Objects","1400",{"path":2596,"stem":2597,"title":2598,"date":2477,"chapterOrder":2599,"chapterDepth":2499,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1500-wen-jian-cao-zuo","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1500-文件操作","File operations","1500",{"path":2601,"stem":2602,"title":2603,"date":2477,"chapterOrder":2604,"chapterDepth":2499,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1600-yi-chang-chu-li-yu-cuo-wu-ma","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1600-异常处理与错误码","异常处理","1600",{"path":2606,"stem":2607,"title":2608,"date":2477,"chapterOrder":2609,"chapterDepth":2499,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1700-mu-ban","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1700-模板","template","1700",{"path":2611,"stem":2612,"title":2613,"date":2477,"chapterOrder":2614,"chapterDepth":144,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0100-stl-chu-shi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0100-STL初识","Introduction to STL","1800-0100",{"path":2616,"stem":2617,"title":2618,"date":2477,"chapterOrder":2619,"chapterDepth":144,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0200-std-array","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0200-std-array","std::array","1800-0200",{"path":2621,"stem":2622,"title":2623,"date":2477,"chapterOrder":2624,"chapterDepth":144,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0300-string-rong-qi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0300-string容器","string container","1800-0300",{"path":2626,"stem":2627,"title":2628,"date":2477,"chapterOrder":2629,"chapterDepth":144,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0400-vector-rong-qi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0400-vector容器","vector 容器","1800-0400",{"path":2631,"stem":2632,"title":2633,"date":2477,"chapterOrder":2634,"chapterDepth":144,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0500-deque-rong-qi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0500-deque容器","deque 容器","1800-0500",{"path":2636,"stem":2637,"title":2638,"date":2477,"chapterOrder":2639,"chapterDepth":144,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0600-stack-rong-qi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0600-stack容器","stack 容器","1800-0600",{"path":2641,"stem":2642,"title":2643,"date":2477,"chapterOrder":2644,"chapterDepth":144,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0700-queue-rong-qi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0700-queue容器","queue container","1800-0700",{"path":2646,"stem":2647,"title":2648,"date":2477,"chapterOrder":2649,"chapterDepth":144,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0800-list-rong-qi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0800-list容器","list 容器","1800-0800",{"path":2651,"stem":2652,"title":2653,"date":2477,"chapterOrder":2654,"chapterDepth":144,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0900-set-rong-qi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0900-set容器","set \u002F multiset 容器","1800-0900",{"path":2656,"stem":2657,"title":2658,"date":2477,"chapterOrder":2659,"chapterDepth":144,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-1000-map-rong-qi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-1000-map容器","map \u002F multimap 容器","1800-1000",{"path":2661,"stem":2662,"title":2663,"date":2477,"chapterOrder":2664,"chapterDepth":144,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-1100-han-shu-dui-xiang-yu-wei-ci","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-1100-函数对象与谓词","Function objects and predicates","1800-1100",{"path":2666,"stem":2667,"title":2668,"date":2477,"chapterOrder":2669,"chapterDepth":144,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-1200-chang-yong-suan-fa","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-1200-常用算法","Common algorithms","1800-1200",{"path":2671,"stem":2672,"title":2673,"date":2477,"chapterOrder":2674,"chapterDepth":2499,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-stl-ti-gao-bian-cheng","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-STL提高编程","Level up your programming with STL.","1800",{"path":2676,"stem":2677,"title":2678,"date":2477,"chapterOrder":2679,"chapterDepth":2499,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1900-c-lei-xing-zhuan-huan","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1900-C++类型转换","C++ Type Casting","1900",{"path":2681,"stem":2682,"title":2683,"date":2477,"chapterOrder":2684,"chapterDepth":144,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0100-auto","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0100-auto","auto","2000-0100",{"path":2686,"stem":2687,"title":2688,"date":2477,"chapterOrder":2689,"chapterDepth":144,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0200-nullptr","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0200-nullptr","nullptr","2000-0200",{"path":2691,"stem":2692,"title":2693,"date":2477,"chapterOrder":2694,"chapterDepth":144,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0300-using","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0300-using","using","2000-0300",{"path":2475,"stem":2491,"title":5,"date":2477,"chapterOrder":2476,"chapterDepth":144,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},{"path":2697,"stem":2698,"title":2699,"date":2477,"chapterOrder":2700,"chapterDepth":144,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0500-fan-wei-for-xun-huan","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0500-范围for循环","range-based for loop","2000-0500",{"path":2702,"stem":2703,"title":2704,"date":2477,"chapterOrder":2705,"chapterDepth":144,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0600-jie-gou-hua-bang-ding","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0600-结构化绑定","structured binding","2000-0600",{"path":2707,"stem":2708,"title":2709,"date":2477,"chapterOrder":2710,"chapterDepth":144,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0700-constexpr","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0700-constexpr","constexpr","2000-0700",{"path":2712,"stem":2713,"title":2714,"date":2477,"chapterOrder":2715,"chapterDepth":144,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0800-raii","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0800-RAII","RAII","2000-0800",{"path":2717,"stem":2718,"title":2719,"date":2477,"chapterOrder":2720,"chapterDepth":144,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0900-zhi-neng-zhi-zhen","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0900-智能指针","Smart pointer","2000-0900",{"path":2722,"stem":2723,"title":2724,"date":2477,"chapterOrder":2725,"chapterDepth":144,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1000-you-zhi-yin-yong-he-yi-dong-yu-yi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1000-右值引用和移动语义","Rvalue references and move semantics","2000-1000",{"path":2727,"stem":2728,"title":2729,"date":2477,"chapterOrder":2730,"chapterDepth":144,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1100-lambda-biao-da-shi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1100-Lambda表达式","Lambda expression","2000-1100",{"path":2732,"stem":2733,"title":2734,"date":2477,"chapterOrder":2735,"chapterDepth":144,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1200-std-function","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1200-std-function","std::function","2000-1200",{"path":2737,"stem":2738,"title":2739,"date":2477,"chapterOrder":2740,"chapterDepth":144,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1300-std-bind","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1300-std-bind","std::bind","2000-1300",{"path":2742,"stem":2743,"title":2744,"date":2477,"chapterOrder":2745,"chapterDepth":144,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1400-std-optional","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1400-std-optional","std::optional","2000-1400",{"path":2747,"stem":2748,"title":2749,"date":2477,"chapterOrder":2750,"chapterDepth":144,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1500-std-variant","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1500-std-variant","std::variant","2000-1500",{"path":2752,"stem":2753,"title":2754,"date":2477,"chapterOrder":2755,"chapterDepth":144,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1600-std-span","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1600-std-span","std::span","2000-1600",{"path":2757,"stem":2758,"title":2759,"date":2477,"chapterOrder":2760,"chapterDepth":144,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1700-std-format-print","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1700-std-format-print","std::format \u002F std::print","2000-1700",{"path":2762,"stem":2763,"title":2764,"date":2477,"chapterOrder":2765,"chapterDepth":144,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1800-std-chrono","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1800-std-chrono","std::chrono","2000-1800",{"path":2767,"stem":2768,"title":2769,"date":2477,"chapterOrder":2770,"chapterDepth":157,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-0100-std-thread","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-0100-std-thread","std::thread and join","2000-1900-0100",{"path":2772,"stem":2773,"title":2774,"date":2477,"chapterOrder":2775,"chapterDepth":157,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-0200-mutex-lock-guard","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-0200-mutex-lock-guard","mutex 与 lock_guard","2000-1900-0200",{"path":2777,"stem":2778,"title":2779,"date":2477,"chapterOrder":2780,"chapterDepth":157,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-0300-std-atomic","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-0300-std-atomic","std::atomic","2000-1900-0300",{"path":2782,"stem":2783,"title":2784,"date":2477,"chapterOrder":2785,"chapterDepth":157,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-0400-condition-variable","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-0400-condition-variable","condition_variable","2000-1900-0400",{"path":2787,"stem":2788,"title":2789,"date":2477,"chapterOrder":2790,"chapterDepth":144,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-bing-fa-bian-cheng","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-并发编程","Concurrent programming","2000-1900",{"path":2792,"stem":2793,"title":2794,"date":2477,"chapterOrder":2795,"chapterDepth":144,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-2000-std-filesystem","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-2000-std-filesystem","std::filesystem","2000-2000",{"path":2797,"stem":2798,"title":2799,"date":2477,"chapterOrder":2800,"chapterDepth":144,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-2100-modules-jian-jie","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-2100-modules简介","Modules Introduction","2000-2100",{"path":2802,"stem":2803,"title":2804,"date":2477,"chapterOrder":2805,"chapterDepth":2499,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-xian-dai-c","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-现代C++","Modern C++","2000",{"path":2807,"stem":2808,"title":2809,"date":2477,"chapterOrder":2810,"chapterDepth":157,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0100-ding-shi-qi-yu-yi-bu-io","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0100-定时器与异步IO","Timers and Asynchronous I\u002FO","2100-0100-0100",{"path":2812,"stem":2813,"title":2814,"date":2477,"chapterOrder":2815,"chapterDepth":157,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0200-boost-asio-ji-chu","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0200-Boost.Asio基础","Boost.Asio Basics","2100-0100-0200",{"path":2817,"stem":2818,"title":2819,"date":2477,"chapterOrder":2820,"chapterDepth":157,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0300-chuan-kou-tong-xin","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0300-串口通信","serial communication","2100-0100-0300",{"path":2822,"stem":2823,"title":2824,"date":2477,"chapterOrder":2825,"chapterDepth":157,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0400-tcp-tong-xin","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0400-TCP通信","TCP communication","2100-0100-0400",{"path":2827,"stem":2828,"title":2829,"date":2477,"chapterOrder":2830,"chapterDepth":157,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0500-udp-tong-xin","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0500-UDP通信","UDP communication","2100-0100-0500",{"path":2832,"stem":2833,"title":2834,"date":2477,"chapterOrder":2835,"chapterDepth":157,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0600-ji-qi-ren-gong-cheng-xie-fa-yu-ros2-ji-cheng","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0600-机器人工程写法与ROS2集成","Robot Engineering Approach and ROS2 Integration","2100-0100-0600",{"path":2837,"stem":2838,"title":2839,"date":2477,"chapterOrder":2840,"chapterDepth":144,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-boost-asio-yi-bu-io-ku","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-Boost.Asio异步IO库","Boost.Asio asynchronous IO library","2100-0100",{"path":2842,"stem":2843,"title":2844,"date":2477,"chapterOrder":2845,"chapterDepth":144,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0200-eigen-xian-xing-dai-shu-ku","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0200-Eigen线性代数库","Eigen linear algebra library","2100-0200",{"path":2847,"stem":2848,"title":2849,"date":2477,"chapterOrder":2850,"chapterDepth":144,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0300-opencv-ji-suan-ji-shi-jue-ku","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0300-OpenCV计算机视觉库","OpenCV Computer Vision Library","2100-0300",{"path":2852,"stem":2853,"title":2854,"date":2477,"chapterOrder":2855,"chapterDepth":144,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0400-pcl-dian-yun-ku","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0400-PCL点云库","PCL Point Cloud Library","2100-0400",{"path":2857,"stem":2858,"title":2859,"date":2477,"chapterOrder":2860,"chapterDepth":144,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0500-sophus-li-qun-li-dai-shu-ku","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0500-Sophus李群李代数库","Sophus Lie group and Lie algebra library","2100-0500",{"path":2862,"stem":2863,"title":2864,"date":2477,"chapterOrder":2865,"chapterDepth":2499,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-chang-yong-ku","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-常用库","Learning Common Libraries","2100",{"path":2867,"stem":2868,"title":2869,"date":2477,"chapterOrder":2870,"chapterDepth":144,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-0100-cmakepresets-yu-gou-jian-an-zhuang","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2200-0100-CMakePresets与构建安装","CMakePresets and Build Installation","2200-0100",{"path":2872,"stem":2873,"title":2874,"date":2477,"chapterOrder":2875,"chapterDepth":144,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-0200-ding-ceng-cmake-yu-gong-gong-bian-yi-xuan-xiang","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2200-0200-顶层CMake与公共编译选项","Top-level CMake and Public Compilation Options","2200-0200",{"path":2877,"stem":2878,"title":2879,"date":2477,"chapterOrder":2880,"chapterDepth":144,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-0300-src-yu-lib-mo-kuai-cmake-xiang-jie","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2200-0300-src与lib模块CMake详解","Detailed CMake Explanation for src and lib Modules","2200-0300",{"path":2882,"stem":2883,"title":2884,"date":2477,"chapterOrder":2885,"chapterDepth":144,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-0400-di-san-fang-ku-yi-lai-xie-fa","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2200-0400-第三方库依赖写法","How to write third-party library dependencies","2200-0400",{"path":2887,"stem":2888,"title":2889,"date":2477,"chapterOrder":2890,"chapterDepth":144,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-0500-mu-ban-kuo-zhan-yu-chang-jian-wen-ti","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2200-0500-模板扩展与常见问题","Template Extensions and FAQ","2200-0500",{"path":2892,"stem":2893,"title":2894,"date":2477,"chapterOrder":2895,"chapterDepth":2499,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":2484},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-cmake-gong-cheng-mu-ban","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2200-CMake工程模板","CMake Project Template","2200",{"path":2480,"stem":2897,"title":2898,"date":2477,"chapterOrder":2485,"chapterDepth":2499,"docKey":2479,"docRoot":2480,"docTitle":2481,"isWikiDoc":190,"isWikiIndex":190},"_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002Findex","C\u002FC++ tutorial",{"variants":2900},[2901,2902,2905,2908,2911],{"path":2475,"localeSlug":2487,"i18nKey":2483},{"path":2903,"localeSlug":2904,"i18nKey":2483},"\u002Fzh-hant\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0400-enum-class","zh-hant",{"path":2906,"localeSlug":2907,"i18nKey":2483},"\u002Fzh-hk\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0400-enum-class","zh-hk",{"path":2909,"localeSlug":2910,"i18nKey":2483},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0400-enum-class","zh-tw",{"path":2912,"localeSlug":2913,"i18nKey":2483},"\u002Fzh-cn\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0400-enum-class","zh-cn",[2475,2490,2903,2490,2906,2490,2909,2490,2912,2490],1784646867139]