[{"data":1,"prerenderedAt":2588},["ShallowReactive",2],{"wiki-page-\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0400-enum-class":3,"wiki-doc-items-2023-10-05-cplusplus-jiao-xue":2201},{"id":4,"title":5,"body":6,"chapterDepth":141,"chapterOrder":2189,"date":2190,"description":134,"docKey":2191,"docRoot":2192,"docTitle":2193,"extension":2194,"isWikiDoc":187,"isWikiIndex":2195,"meta":2196,"navigation":187,"path":2197,"seo":2198,"stem":2199,"wikiDepth":141,"__hash__":2200},"wiki\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0400-enum-class.md","enum class",{"type":7,"value":8,"toc":2168},"minimark",[9,13,22,57,62,65,70,101,105,108,111,125,128,208,211,281,284,289,578,584,592,596,1026,1030,1036,1040,1505,1509,1515,1517,1520,1523,1617,1621,1626,1630,1879,1883,1889,1908,1911,1916,1969,1976,1981,2018,2023,2028,2089,2092,2095,2136,2139,2164],[10,11,12],"h2",{"id":12},"本节解决什么问题",[14,15,16,17,21],"p",{},"C 语言的 ",[18,19,20],"code",{},"enum"," 有几个问题：",[23,24,25,41,51],"ol",{},[26,27,28,32,33,36,37,40],"li",{},[29,30,31],"strong",{},"名字污染","：枚举值会泄漏到其所在的作用域，例如 ",[18,34,35],{},"enum Color { red, green };"," 写完后，",[18,38,39],{},"red"," 就成了全局名字，不能再用于别的枚举。",[26,42,43,46,47,50],{},[29,44,45],{},"隐式转整数","：枚举值会悄悄变成整数参与运算（",[18,48,49],{},"red + 1"," 合法但通常没有意义）。",[26,52,53,56],{},[29,54,55],{},"底层类型不确定","：编译器自行决定用多大空间存储枚举值。",[14,58,59,61],{},[18,60,5],{}," 解决了上述所有问题。",[10,63,64],{"id":64},"这个特性是什么",[14,66,67,69],{},[18,68,5],{},"（强类型枚举 \u002F 限定作用域枚举）是 C++11 引入的改进版枚举：",[71,72,73,84,90],"ul",{},[26,74,75,76,79,80,83],{},"枚举值有",[29,77,78],{},"作用域限定","，需要用 ",[18,81,82],{},"Color::red"," 访问。",[26,85,86,89],{},[29,87,88],{},"不会","隐式转换为整数。",[26,91,92,93,96,97,100],{},"可以",[29,94,95],{},"指定底层类型","（如 ",[18,98,99],{},"enum class Color : uint8_t","）。",[10,102,104],{"id":103},"c-标准版本","C++ 标准版本",[14,106,107],{},"C++11",[10,109,110],{"id":110},"需要的头文件",[14,112,113,114,116,117,120,121,124],{},"不需要额外头文件。",[18,115,5],{}," 是语言关键字。如果要使用 ",[18,118,119],{},"uint8_t"," 这类固定宽度整数作为底层类型，需要 ",[18,122,123],{},"#include \u003Ccstdint>","。",[10,126,127],{"id":127},"基本语法",[129,130,135],"pre",{"className":131,"code":132,"language":133,"meta":134,"style":134},"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","",[18,136,137,152,158,164,170,176,182,189,196],{"__ignoreMap":134},[138,139,142,145,148],"span",{"class":140,"line":141},"line",1,[138,143,20],{"class":144},"szBVR",[138,146,147],{"class":144}," class",[138,149,151],{"class":150},"sVt8B"," 枚举名 : 底层类型\n",[138,153,155],{"class":140,"line":154},2,[138,156,157],{"class":150},"{\n",[138,159,161],{"class":140,"line":160},3,[138,162,163],{"class":150},"    值1,\n",[138,165,167],{"class":140,"line":166},4,[138,168,169],{"class":150},"    值2,\n",[138,171,173],{"class":140,"line":172},5,[138,174,175],{"class":150},"    值3\n",[138,177,179],{"class":140,"line":178},6,[138,180,181],{"class":150},"};\n",[138,183,185],{"class":140,"line":184},7,[138,186,188],{"emptyLinePlaceholder":187},true,"\n",[138,190,192],{"class":140,"line":191},8,[138,193,195],{"class":194},"sJ8bj","\u002F\u002F 访问\n",[138,197,199,202,205],{"class":140,"line":198},9,[138,200,201],{"class":150},"枚举名 变量 ",[138,203,204],{"class":144},"=",[138,206,207],{"class":150}," 枚举名::值1;\n",[10,209,210],{"id":210},"常用用法",[212,213,214,228],"table",{},[215,216,217],"thead",{},[218,219,220,225],"tr",{},[221,222,224],"th",{"align":223},"left","用法",[221,226,227],{"align":223},"说明",[229,230,231,242,251,261,271],"tbody",{},[218,232,233,239],{},[234,235,236],"td",{"align":223},[18,237,238],{},"enum class E { A, B, C };",[234,240,241],{"align":223},"基本枚举类",[218,243,244,249],{},[234,245,246],{"align":223},[18,247,248],{},"enum class E : uint8_t { A, B, C };",[234,250,95],{"align":223},[218,252,253,258],{},[234,254,255],{"align":223},[18,256,257],{},"E::A",[234,259,260],{"align":223},"访问枚举值（带作用域）",[218,262,263,268],{},[234,264,265],{"align":223},[18,266,267],{},"static_cast\u003Cint>(E::A)",[234,269,270],{"align":223},"显式转换（不会隐式转换）",[218,272,273,278],{},[234,274,275],{"align":223},[18,276,277],{},"switch (val) { case E::A: ... }",[234,279,280],{"align":223},"switch 匹配",[10,282,283],{"id":283},"示例代码",[285,286,288],"h3",{"id":287},"示例-1旧-enum-vs-enum-class","示例 1：旧 enum vs enum class",[129,290,292],{"className":131,"code":291,"language":133,"meta":134,"style":134},"#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",[18,293,294,303,307,312,340,344,349,372,376,387,392,398,412,428,433,439,452,457,466,491,496,530,556,561,572],{"__ignoreMap":134},[138,295,296,299],{"class":140,"line":141},[138,297,298],{"class":144},"#include",[138,300,302],{"class":301},"sZZnC"," \u003Ciostream>\n",[138,304,305],{"class":140,"line":154},[138,306,188],{"emptyLinePlaceholder":187},[138,308,309],{"class":140,"line":160},[138,310,311],{"class":194},"\u002F\u002F 旧式 enum（不推荐）\n",[138,313,314,316,320,323,326,329,332,334,337],{"class":140,"line":166},[138,315,20],{"class":144},[138,317,319],{"class":318},"sScJk"," OldColor",[138,321,322],{"class":150}," { ",[138,324,39],{"class":325},"sj4cs",[138,327,328],{"class":150},", ",[138,330,331],{"class":325},"green",[138,333,328],{"class":150},[138,335,336],{"class":325},"blue",[138,338,339],{"class":150}," };\n",[138,341,342],{"class":140,"line":172},[138,343,188],{"emptyLinePlaceholder":187},[138,345,346],{"class":140,"line":178},[138,347,348],{"class":194},"\u002F\u002F enum class（推荐）\n",[138,350,351,353,355,358,360,362,364,366,368,370],{"class":140,"line":184},[138,352,20],{"class":144},[138,354,147],{"class":144},[138,356,357],{"class":318}," Color",[138,359,322],{"class":150},[138,361,39],{"class":325},[138,363,328],{"class":150},[138,365,331],{"class":325},[138,367,328],{"class":150},[138,369,336],{"class":325},[138,371,339],{"class":150},[138,373,374],{"class":140,"line":191},[138,375,188],{"emptyLinePlaceholder":187},[138,377,378,381,384],{"class":140,"line":198},[138,379,380],{"class":144},"int",[138,382,383],{"class":318}," main",[138,385,386],{"class":150},"()\n",[138,388,390],{"class":140,"line":389},10,[138,391,157],{"class":150},[138,393,395],{"class":140,"line":394},11,[138,396,397],{"class":194},"    \u002F\u002F 旧式 enum：名字污染，red 直接可见\n",[138,399,401,404,406,409],{"class":140,"line":400},12,[138,402,403],{"class":150},"    OldColor oc ",[138,405,204],{"class":144},[138,407,408],{"class":150}," red;",[138,410,411],{"class":194},"  \u002F\u002F 直接写 red\n",[138,413,415,418,421,423,425],{"class":140,"line":414},13,[138,416,417],{"class":144},"    int",[138,419,420],{"class":150}," n ",[138,422,204],{"class":144},[138,424,408],{"class":150},[138,426,427],{"class":194},"         \u002F\u002F 隐式转为 0\n",[138,429,431],{"class":140,"line":430},14,[138,432,188],{"emptyLinePlaceholder":187},[138,434,436],{"class":140,"line":435},15,[138,437,438],{"class":194},"    \u002F\u002F enum class：需要带作用域\n",[138,440,442,445,447,449],{"class":140,"line":441},16,[138,443,444],{"class":150},"    Color c ",[138,446,204],{"class":144},[138,448,357],{"class":318},[138,450,451],{"class":150},"::red;\n",[138,453,455],{"class":140,"line":454},17,[138,456,188],{"emptyLinePlaceholder":187},[138,458,460,463],{"class":140,"line":459},18,[138,461,462],{"class":194},"    \u002F\u002F int m = Color::red;",[138,464,465],{"class":194},"  \u002F\u002F ❌ 编译错误！不会隐式转换为 int\n",[138,467,469,471,474,476,479,482,485,488],{"class":140,"line":468},19,[138,470,417],{"class":144},[138,472,473],{"class":150}," m ",[138,475,204],{"class":144},[138,477,478],{"class":144}," static_cast\u003Cint>",[138,480,481],{"class":150},"(",[138,483,484],{"class":318},"Color",[138,486,487],{"class":150},"::red);",[138,489,490],{"class":194},"  \u002F\u002F ✅ 显式转换\n",[138,492,494],{"class":140,"line":493},20,[138,495,188],{"emptyLinePlaceholder":187},[138,497,499,502,505,508,511,514,516,518,521,524,527],{"class":140,"line":498},21,[138,500,501],{"class":318},"    std",[138,503,504],{"class":150},"::cout ",[138,506,507],{"class":144},"\u003C\u003C",[138,509,510],{"class":301}," \"OldColor red = \"",[138,512,513],{"class":144}," \u003C\u003C",[138,515,420],{"class":150},[138,517,507],{"class":144},[138,519,520],{"class":301}," \"",[138,522,523],{"class":325},"\\n",[138,525,526],{"class":301},"\"",[138,528,529],{"class":150},";\n",[138,531,533,535,537,539,542,544,546,548,550,552,554],{"class":140,"line":532},22,[138,534,501],{"class":318},[138,536,504],{"class":150},[138,538,507],{"class":144},[138,540,541],{"class":301}," \"Color::red = \"",[138,543,513],{"class":144},[138,545,473],{"class":150},[138,547,507],{"class":144},[138,549,520],{"class":301},[138,551,523],{"class":325},[138,553,526],{"class":301},[138,555,529],{"class":150},[138,557,559],{"class":140,"line":558},23,[138,560,188],{"emptyLinePlaceholder":187},[138,562,564,567,570],{"class":140,"line":563},24,[138,565,566],{"class":144},"    return",[138,568,569],{"class":325}," 0",[138,571,529],{"class":150},[138,573,575],{"class":140,"line":574},25,[138,576,577],{"class":150},"}\n",[14,579,580,583],{},[29,581,582],{},"运行结果","：",[129,585,590],{"className":586,"code":588,"language":589},[587],"language-text","OldColor red = 0\nColor::red = 0\n","text",[18,591,588],{"__ignoreMap":134},[285,593,595],{"id":594},"示例-2在示例-1-基础上指定底层类型和自定义值","示例 2：在示例 1 基础上，指定底层类型和自定义值",[129,597,599],{"className":131,"code":598,"language":133,"meta":134,"style":134},"#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",[18,600,601,608,614,618,623,638,642,655,667,679,689,693,697,717,721,729,734,744,762,769,778,795,801,810,827,833,843,861,868,874,879,884,893,898,911,920,932,937,943,974,1007,1012,1021],{"__ignoreMap":134},[138,602,603,605],{"class":140,"line":141},[138,604,298],{"class":144},[138,606,607],{"class":301}," \u003Ccstdint>\n",[138,609,610,612],{"class":140,"line":154},[138,611,298],{"class":144},[138,613,302],{"class":301},[138,615,616],{"class":140,"line":160},[138,617,188],{"emptyLinePlaceholder":187},[138,619,620],{"class":140,"line":166},[138,621,622],{"class":194},"\u002F\u002F 指定底层类型为 uint8_t（只占一个字节）\n",[138,624,625,627,629,632,635],{"class":140,"line":172},[138,626,20],{"class":144},[138,628,147],{"class":144},[138,630,631],{"class":318}," Status",[138,633,634],{"class":150}," : ",[138,636,637],{"class":144},"uint8_t\n",[138,639,640],{"class":140,"line":178},[138,641,157],{"class":150},[138,643,644,647,650,652],{"class":140,"line":184},[138,645,646],{"class":325},"    Idle",[138,648,649],{"class":144}," =",[138,651,569],{"class":325},[138,653,654],{"class":150},",\n",[138,656,657,660,662,665],{"class":140,"line":191},[138,658,659],{"class":325},"    Running",[138,661,649],{"class":144},[138,663,664],{"class":325}," 10",[138,666,654],{"class":150},[138,668,669,672,674,677],{"class":140,"line":198},[138,670,671],{"class":325},"    Paused",[138,673,649],{"class":144},[138,675,676],{"class":325}," 20",[138,678,654],{"class":150},[138,680,681,684,686],{"class":140,"line":389},[138,682,683],{"class":325},"    Stopped",[138,685,649],{"class":144},[138,687,688],{"class":325}," 30\n",[138,690,691],{"class":140,"line":394},[138,692,181],{"class":150},[138,694,695],{"class":140,"line":400},[138,696,188],{"emptyLinePlaceholder":187},[138,698,699,702,705,707,710,714],{"class":140,"line":414},[138,700,701],{"class":144},"void",[138,703,704],{"class":318}," print_status",[138,706,481],{"class":150},[138,708,709],{"class":318},"Status",[138,711,713],{"class":712},"s4XuR"," s",[138,715,716],{"class":150},")\n",[138,718,719],{"class":140,"line":430},[138,720,157],{"class":150},[138,722,723,726],{"class":140,"line":435},[138,724,725],{"class":144},"    switch",[138,727,728],{"class":150}," (s)\n",[138,730,731],{"class":140,"line":441},[138,732,733],{"class":150},"    {\n",[138,735,736,739,741],{"class":140,"line":454},[138,737,738],{"class":144},"        case",[138,740,631],{"class":318},[138,742,743],{"class":150},"::Idle:\n",[138,745,746,749,751,753,756,758,760],{"class":140,"line":459},[138,747,748],{"class":318},"            std",[138,750,504],{"class":150},[138,752,507],{"class":144},[138,754,755],{"class":301}," \"Idle",[138,757,523],{"class":325},[138,759,526],{"class":301},[138,761,529],{"class":150},[138,763,764,767],{"class":140,"line":468},[138,765,766],{"class":144},"            break",[138,768,529],{"class":150},[138,770,771,773,775],{"class":140,"line":493},[138,772,738],{"class":144},[138,774,631],{"class":318},[138,776,777],{"class":150},"::Running:\n",[138,779,780,782,784,786,789,791,793],{"class":140,"line":498},[138,781,748],{"class":318},[138,783,504],{"class":150},[138,785,507],{"class":144},[138,787,788],{"class":301}," \"Running",[138,790,523],{"class":325},[138,792,526],{"class":301},[138,794,529],{"class":150},[138,796,797,799],{"class":140,"line":532},[138,798,766],{"class":144},[138,800,529],{"class":150},[138,802,803,805,807],{"class":140,"line":558},[138,804,738],{"class":144},[138,806,631],{"class":318},[138,808,809],{"class":150},"::Paused:\n",[138,811,812,814,816,818,821,823,825],{"class":140,"line":563},[138,813,748],{"class":318},[138,815,504],{"class":150},[138,817,507],{"class":144},[138,819,820],{"class":301}," \"Paused",[138,822,523],{"class":325},[138,824,526],{"class":301},[138,826,529],{"class":150},[138,828,829,831],{"class":140,"line":574},[138,830,766],{"class":144},[138,832,529],{"class":150},[138,834,836,838,840],{"class":140,"line":835},26,[138,837,738],{"class":144},[138,839,631],{"class":318},[138,841,842],{"class":150},"::Stopped:\n",[138,844,846,848,850,852,855,857,859],{"class":140,"line":845},27,[138,847,748],{"class":318},[138,849,504],{"class":150},[138,851,507],{"class":144},[138,853,854],{"class":301}," \"Stopped",[138,856,523],{"class":325},[138,858,526],{"class":301},[138,860,529],{"class":150},[138,862,864,866],{"class":140,"line":863},28,[138,865,766],{"class":144},[138,867,529],{"class":150},[138,869,871],{"class":140,"line":870},29,[138,872,873],{"class":150},"    }\n",[138,875,877],{"class":140,"line":876},30,[138,878,577],{"class":150},[138,880,882],{"class":140,"line":881},31,[138,883,188],{"emptyLinePlaceholder":187},[138,885,887,889,891],{"class":140,"line":886},32,[138,888,380],{"class":144},[138,890,383],{"class":318},[138,892,386],{"class":150},[138,894,896],{"class":140,"line":895},33,[138,897,157],{"class":150},[138,899,901,904,906,908],{"class":140,"line":900},34,[138,902,903],{"class":150},"    Status s1 ",[138,905,204],{"class":144},[138,907,631],{"class":318},[138,909,910],{"class":150},"::Running;\n",[138,912,914,917],{"class":140,"line":913},35,[138,915,916],{"class":318},"    print_status",[138,918,919],{"class":150},"(s1);\n",[138,921,923,925,927,929],{"class":140,"line":922},36,[138,924,916],{"class":318},[138,926,481],{"class":150},[138,928,709],{"class":318},[138,930,931],{"class":150},"::Stopped);\n",[138,933,935],{"class":140,"line":934},37,[138,936,188],{"emptyLinePlaceholder":187},[138,938,940],{"class":140,"line":939},38,[138,941,942],{"class":194},"    \u002F\u002F 查看底层整数值\n",[138,944,946,948,950,952,955,957,960,963,965,968,970,972],{"class":140,"line":945},39,[138,947,501],{"class":318},[138,949,504],{"class":150},[138,951,507],{"class":144},[138,953,954],{"class":301}," \"sizeof(Status) = \"",[138,956,513],{"class":144},[138,958,959],{"class":144}," sizeof",[138,961,962],{"class":150},"(Status) ",[138,964,507],{"class":144},[138,966,967],{"class":301}," \" byte(s)",[138,969,523],{"class":325},[138,971,526],{"class":301},[138,973,529],{"class":150},[138,975,977,979,981,983,986,988,990,992,994,997,999,1001,1003,1005],{"class":140,"line":976},40,[138,978,501],{"class":318},[138,980,504],{"class":150},[138,982,507],{"class":144},[138,984,985],{"class":301}," \"Running = \"",[138,987,513],{"class":144},[138,989,478],{"class":144},[138,991,481],{"class":150},[138,993,709],{"class":318},[138,995,996],{"class":150},"::Running) ",[138,998,507],{"class":144},[138,1000,520],{"class":301},[138,1002,523],{"class":325},[138,1004,526],{"class":301},[138,1006,529],{"class":150},[138,1008,1010],{"class":140,"line":1009},41,[138,1011,188],{"emptyLinePlaceholder":187},[138,1013,1015,1017,1019],{"class":140,"line":1014},42,[138,1016,566],{"class":144},[138,1018,569],{"class":325},[138,1020,529],{"class":150},[138,1022,1024],{"class":140,"line":1023},43,[138,1025,577],{"class":150},[14,1027,1028,583],{},[29,1029,582],{},[129,1031,1034],{"className":1032,"code":1033,"language":589},[587],"Running\nStopped\nsizeof(Status) = 1 byte(s)\nRunning = 10\n",[18,1035,1033],{"__ignoreMap":134},[285,1037,1039],{"id":1038},"示例-3在示例-2-基础上enum-class-在结构体中的应用","示例 3：在示例 2 基础上，enum class 在结构体中的应用",[129,1041,1043],{"className":131,"code":1042,"language":133,"meta":134,"style":134},"#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",[18,1044,1045,1051,1058,1062,1071,1075,1087,1099,1111,1123,1133,1137,1141,1149,1153,1160,1165,1169,1173,1197,1201,1208,1212,1230,1246,1262,1278,1294,1309,1313,1317,1321,1329,1333,1348,1363,1367,1400,1432,1436,1441,1455,1459,1481,1486,1491,1500],{"__ignoreMap":134},[138,1046,1047,1049],{"class":140,"line":141},[138,1048,298],{"class":144},[138,1050,302],{"class":301},[138,1052,1053,1055],{"class":140,"line":154},[138,1054,298],{"class":144},[138,1056,1057],{"class":301}," \u003Cstring>\n",[138,1059,1060],{"class":140,"line":160},[138,1061,188],{"emptyLinePlaceholder":187},[138,1063,1064,1066,1068],{"class":140,"line":166},[138,1065,20],{"class":144},[138,1067,147],{"class":144},[138,1069,1070],{"class":318}," Grade\n",[138,1072,1073],{"class":140,"line":172},[138,1074,157],{"class":150},[138,1076,1077,1080,1082,1085],{"class":140,"line":178},[138,1078,1079],{"class":325},"    A",[138,1081,649],{"class":144},[138,1083,1084],{"class":325}," 90",[138,1086,654],{"class":150},[138,1088,1089,1092,1094,1097],{"class":140,"line":184},[138,1090,1091],{"class":325},"    B",[138,1093,649],{"class":144},[138,1095,1096],{"class":325}," 80",[138,1098,654],{"class":150},[138,1100,1101,1104,1106,1109],{"class":140,"line":191},[138,1102,1103],{"class":325},"    C",[138,1105,649],{"class":144},[138,1107,1108],{"class":325}," 70",[138,1110,654],{"class":150},[138,1112,1113,1116,1118,1121],{"class":140,"line":198},[138,1114,1115],{"class":325},"    D",[138,1117,649],{"class":144},[138,1119,1120],{"class":325}," 60",[138,1122,654],{"class":150},[138,1124,1125,1128,1130],{"class":140,"line":389},[138,1126,1127],{"class":325},"    F",[138,1129,649],{"class":144},[138,1131,1132],{"class":325}," 0\n",[138,1134,1135],{"class":140,"line":394},[138,1136,181],{"class":150},[138,1138,1139],{"class":140,"line":400},[138,1140,188],{"emptyLinePlaceholder":187},[138,1142,1143,1146],{"class":140,"line":414},[138,1144,1145],{"class":144},"struct",[138,1147,1148],{"class":318}," Student\n",[138,1150,1151],{"class":140,"line":430},[138,1152,157],{"class":150},[138,1154,1155,1157],{"class":140,"line":435},[138,1156,501],{"class":318},[138,1158,1159],{"class":150},"::string name;\n",[138,1161,1162],{"class":140,"line":441},[138,1163,1164],{"class":150},"    Grade grade;\n",[138,1166,1167],{"class":140,"line":454},[138,1168,181],{"class":150},[138,1170,1171],{"class":140,"line":459},[138,1172,188],{"emptyLinePlaceholder":187},[138,1174,1175,1178,1181,1184,1187,1189,1192,1195],{"class":140,"line":468},[138,1176,1177],{"class":318},"std",[138,1179,1180],{"class":150},"::",[138,1182,1183],{"class":318},"string",[138,1185,1186],{"class":318}," grade_to_string",[138,1188,481],{"class":150},[138,1190,1191],{"class":318},"Grade",[138,1193,1194],{"class":712}," g",[138,1196,716],{"class":150},[138,1198,1199],{"class":140,"line":493},[138,1200,157],{"class":150},[138,1202,1203,1205],{"class":140,"line":498},[138,1204,725],{"class":144},[138,1206,1207],{"class":150}," (g)\n",[138,1209,1210],{"class":140,"line":532},[138,1211,733],{"class":150},[138,1213,1214,1216,1219,1222,1225,1228],{"class":140,"line":558},[138,1215,738],{"class":144},[138,1217,1218],{"class":318}," Grade",[138,1220,1221],{"class":150},"::A: ",[138,1223,1224],{"class":144},"return",[138,1226,1227],{"class":301}," \"A (优秀)\"",[138,1229,529],{"class":150},[138,1231,1232,1234,1236,1239,1241,1244],{"class":140,"line":563},[138,1233,738],{"class":144},[138,1235,1218],{"class":318},[138,1237,1238],{"class":150},"::B: ",[138,1240,1224],{"class":144},[138,1242,1243],{"class":301}," \"B (良好)\"",[138,1245,529],{"class":150},[138,1247,1248,1250,1252,1255,1257,1260],{"class":140,"line":574},[138,1249,738],{"class":144},[138,1251,1218],{"class":318},[138,1253,1254],{"class":150},"::C: ",[138,1256,1224],{"class":144},[138,1258,1259],{"class":301}," \"C (中等)\"",[138,1261,529],{"class":150},[138,1263,1264,1266,1268,1271,1273,1276],{"class":140,"line":835},[138,1265,738],{"class":144},[138,1267,1218],{"class":318},[138,1269,1270],{"class":150},"::D: ",[138,1272,1224],{"class":144},[138,1274,1275],{"class":301}," \"D (及格)\"",[138,1277,529],{"class":150},[138,1279,1280,1282,1284,1287,1289,1292],{"class":140,"line":845},[138,1281,738],{"class":144},[138,1283,1218],{"class":318},[138,1285,1286],{"class":150},"::F: ",[138,1288,1224],{"class":144},[138,1290,1291],{"class":301}," \"F (不及格)\"",[138,1293,529],{"class":150},[138,1295,1296,1299,1302,1304,1307],{"class":140,"line":863},[138,1297,1298],{"class":144},"        default",[138,1300,1301],{"class":150},":       ",[138,1303,1224],{"class":144},[138,1305,1306],{"class":301}," \"未知\"",[138,1308,529],{"class":150},[138,1310,1311],{"class":140,"line":870},[138,1312,873],{"class":150},[138,1314,1315],{"class":140,"line":876},[138,1316,577],{"class":150},[138,1318,1319],{"class":140,"line":881},[138,1320,188],{"emptyLinePlaceholder":187},[138,1322,1323,1325,1327],{"class":140,"line":886},[138,1324,380],{"class":144},[138,1326,383],{"class":318},[138,1328,386],{"class":150},[138,1330,1331],{"class":140,"line":895},[138,1332,157],{"class":150},[138,1334,1335,1338,1341,1343,1345],{"class":140,"line":900},[138,1336,1337],{"class":150},"    Student s1{",[138,1339,1340],{"class":301},"\"Alice\"",[138,1342,328],{"class":150},[138,1344,1191],{"class":318},[138,1346,1347],{"class":150},"::A};\n",[138,1349,1350,1353,1356,1358,1360],{"class":140,"line":913},[138,1351,1352],{"class":150},"    Student s2{",[138,1354,1355],{"class":301},"\"Bob\"",[138,1357,328],{"class":150},[138,1359,1191],{"class":318},[138,1361,1362],{"class":150},"::C};\n",[138,1364,1365],{"class":140,"line":922},[138,1366,188],{"emptyLinePlaceholder":187},[138,1368,1369,1371,1373,1375,1378,1380,1383,1385,1387,1390,1392,1394,1396,1398],{"class":140,"line":934},[138,1370,501],{"class":318},[138,1372,504],{"class":150},[138,1374,507],{"class":144},[138,1376,1377],{"class":150}," s1.name ",[138,1379,507],{"class":144},[138,1381,1382],{"class":301}," \" grade: \"",[138,1384,513],{"class":144},[138,1386,1186],{"class":318},[138,1388,1389],{"class":150},"(s1.grade) ",[138,1391,507],{"class":144},[138,1393,520],{"class":301},[138,1395,523],{"class":325},[138,1397,526],{"class":301},[138,1399,529],{"class":150},[138,1401,1402,1404,1406,1408,1411,1413,1415,1417,1419,1422,1424,1426,1428,1430],{"class":140,"line":939},[138,1403,501],{"class":318},[138,1405,504],{"class":150},[138,1407,507],{"class":144},[138,1409,1410],{"class":150}," s2.name ",[138,1412,507],{"class":144},[138,1414,1382],{"class":301},[138,1416,513],{"class":144},[138,1418,1186],{"class":318},[138,1420,1421],{"class":150},"(s2.grade) ",[138,1423,507],{"class":144},[138,1425,520],{"class":301},[138,1427,523],{"class":325},[138,1429,526],{"class":301},[138,1431,529],{"class":150},[138,1433,1434],{"class":140,"line":945},[138,1435,188],{"emptyLinePlaceholder":187},[138,1437,1438],{"class":140,"line":976},[138,1439,1440],{"class":194},"    \u002F\u002F 比较（enum class 支持 ==, \u003C, > 等）\n",[138,1442,1443,1446,1449,1452],{"class":140,"line":1009},[138,1444,1445],{"class":144},"    if",[138,1447,1448],{"class":150}," (s1.grade ",[138,1450,1451],{"class":144},">",[138,1453,1454],{"class":150}," s2.grade)\n",[138,1456,1457],{"class":140,"line":1014},[138,1458,733],{"class":150},[138,1460,1461,1464,1466,1468,1470,1472,1475,1477,1479],{"class":140,"line":1023},[138,1462,1463],{"class":318},"        std",[138,1465,504],{"class":150},[138,1467,507],{"class":144},[138,1469,1377],{"class":150},[138,1471,507],{"class":144},[138,1473,1474],{"class":301}," \" has higher grade",[138,1476,523],{"class":325},[138,1478,526],{"class":301},[138,1480,529],{"class":150},[138,1482,1484],{"class":140,"line":1483},44,[138,1485,873],{"class":150},[138,1487,1489],{"class":140,"line":1488},45,[138,1490,188],{"emptyLinePlaceholder":187},[138,1492,1494,1496,1498],{"class":140,"line":1493},46,[138,1495,566],{"class":144},[138,1497,569],{"class":325},[138,1499,529],{"class":150},[138,1501,1503],{"class":140,"line":1502},47,[138,1504,577],{"class":150},[14,1506,1507,583],{},[29,1508,582],{},[129,1510,1513],{"className":1511,"code":1512,"language":589},[587],"Alice grade: A (优秀)\nBob grade: C (中等)\nAlice has higher grade\n",[18,1514,1512],{"__ignoreMap":134},[10,1516,582],{"id":582},[14,1518,1519],{},"见上方每个示例的\"运行结果\"。",[10,1521,1522],{"id":1522},"示例中的关键语法解释",[212,1524,1525,1544],{},[215,1526,1527],{},[218,1528,1529,1532,1535,1538,1541],{},[221,1530,1531],{"align":223},"示例",[221,1533,1534],{"align":223},"讲了什么",[221,1536,1537],{"align":223},"新出现的语法",[221,1539,1540],{"align":223},"为什么这样写",[221,1542,1543],{"align":223},"注意事项",[229,1545,1546,1568,1591],{},[218,1547,1548,1551,1554,1562,1565],{},[234,1549,1550],{"align":223},"示例 1",[234,1552,1553],{"align":223},"旧 enum 问题 vs enum class",[234,1555,1556,1558,1559],{"align":223},[18,1557,5],{},"、",[18,1560,1561],{},"static_cast\u003Cint>()",[234,1563,1564],{"align":223},"旧 enum 名字污染、隐式转 int；enum class 解决",[234,1566,1567],{"align":223},"需要整数值时必须显式转换",[218,1569,1570,1573,1576,1582,1585],{},[234,1571,1572],{"align":223},"示例 2",[234,1574,1575],{"align":223},"指定底层类型和 switch 用法",[234,1577,1578,1581],{"align":223},[18,1579,1580],{},"enum class : uint8_t","、switch + enum class",[234,1583,1584],{"align":223},"指定底层类型能节省内存（如嵌入式场景）",[234,1586,1587,1590],{"align":223},[18,1588,1589],{},"sizeof(enum class)"," 不等于成员个数",[218,1592,1593,1596,1599,1602,1605],{},[234,1594,1595],{"align":223},"示例 3",[234,1597,1598],{"align":223},"在 struct 中使用 enum class",[234,1600,1601],{"align":223},"enum class 做 struct 成员、比较操作",[234,1603,1604],{"align":223},"表示状态、等级等有限取值集合",[234,1606,1607,1608,328,1611,328,1614,1616],{"align":223},"enum class 支持 ",[18,1609,1610],{},"==",[18,1612,1613],{},"\u003C",[18,1615,1451],{}," 等比较",[10,1618,1620],{"id":1619},"enum-class-适合表示状态和选项","enum class 适合表示状态和选项",[14,1622,1623,1625],{},[18,1624,5],{}," 最适合表示“有限个离散取值”，比如机器人状态、任务阶段、通信协议命令、UI 模式。",[285,1627,1629],{"id":1628},"示例-4用-enum-class-表示机器人状态","示例 4：用 enum class 表示机器人状态",[129,1631,1633],{"className":131,"code":1632,"language":133,"meta":134,"style":134},"#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",[18,1634,1635,1641,1645,1654,1658,1664,1670,1675,1679,1683,1700,1704,1711,1715,1724,1741,1747,1755,1772,1778,1787,1804,1810,1814,1818,1822,1830,1834,1839,1850,1858,1862,1867,1875],{"__ignoreMap":134},[138,1636,1637,1639],{"class":140,"line":141},[138,1638,298],{"class":144},[138,1640,302],{"class":301},[138,1642,1643],{"class":140,"line":154},[138,1644,188],{"emptyLinePlaceholder":187},[138,1646,1647,1649,1651],{"class":140,"line":160},[138,1648,20],{"class":144},[138,1650,147],{"class":144},[138,1652,1653],{"class":318}," RobotState\n",[138,1655,1656],{"class":140,"line":166},[138,1657,157],{"class":150},[138,1659,1660,1662],{"class":140,"line":172},[138,1661,646],{"class":325},[138,1663,654],{"class":150},[138,1665,1666,1668],{"class":140,"line":178},[138,1667,659],{"class":325},[138,1669,654],{"class":150},[138,1671,1672],{"class":140,"line":184},[138,1673,1674],{"class":325},"    Error\n",[138,1676,1677],{"class":140,"line":191},[138,1678,181],{"class":150},[138,1680,1681],{"class":140,"line":198},[138,1682,188],{"emptyLinePlaceholder":187},[138,1684,1685,1687,1690,1692,1695,1698],{"class":140,"line":389},[138,1686,701],{"class":144},[138,1688,1689],{"class":318}," handle_state",[138,1691,481],{"class":150},[138,1693,1694],{"class":318},"RobotState",[138,1696,1697],{"class":712}," state",[138,1699,716],{"class":150},[138,1701,1702],{"class":140,"line":394},[138,1703,157],{"class":150},[138,1705,1706,1708],{"class":140,"line":400},[138,1707,725],{"class":144},[138,1709,1710],{"class":150}," (state)\n",[138,1712,1713],{"class":140,"line":414},[138,1714,733],{"class":150},[138,1716,1717,1719,1722],{"class":140,"line":430},[138,1718,738],{"class":144},[138,1720,1721],{"class":318}," RobotState",[138,1723,743],{"class":150},[138,1725,1726,1728,1730,1732,1735,1737,1739],{"class":140,"line":435},[138,1727,748],{"class":318},[138,1729,504],{"class":150},[138,1731,507],{"class":144},[138,1733,1734],{"class":301}," \"wait for command",[138,1736,523],{"class":325},[138,1738,526],{"class":301},[138,1740,529],{"class":150},[138,1742,1743,1745],{"class":140,"line":441},[138,1744,766],{"class":144},[138,1746,529],{"class":150},[138,1748,1749,1751,1753],{"class":140,"line":454},[138,1750,738],{"class":144},[138,1752,1721],{"class":318},[138,1754,777],{"class":150},[138,1756,1757,1759,1761,1763,1766,1768,1770],{"class":140,"line":459},[138,1758,748],{"class":318},[138,1760,504],{"class":150},[138,1762,507],{"class":144},[138,1764,1765],{"class":301}," \"execute task",[138,1767,523],{"class":325},[138,1769,526],{"class":301},[138,1771,529],{"class":150},[138,1773,1774,1776],{"class":140,"line":468},[138,1775,766],{"class":144},[138,1777,529],{"class":150},[138,1779,1780,1782,1784],{"class":140,"line":493},[138,1781,738],{"class":144},[138,1783,1721],{"class":318},[138,1785,1786],{"class":150},"::Error:\n",[138,1788,1789,1791,1793,1795,1798,1800,1802],{"class":140,"line":498},[138,1790,748],{"class":318},[138,1792,504],{"class":150},[138,1794,507],{"class":144},[138,1796,1797],{"class":301}," \"stop and report error",[138,1799,523],{"class":325},[138,1801,526],{"class":301},[138,1803,529],{"class":150},[138,1805,1806,1808],{"class":140,"line":532},[138,1807,766],{"class":144},[138,1809,529],{"class":150},[138,1811,1812],{"class":140,"line":558},[138,1813,873],{"class":150},[138,1815,1816],{"class":140,"line":563},[138,1817,577],{"class":150},[138,1819,1820],{"class":140,"line":574},[138,1821,188],{"emptyLinePlaceholder":187},[138,1823,1824,1826,1828],{"class":140,"line":835},[138,1825,380],{"class":144},[138,1827,383],{"class":318},[138,1829,386],{"class":150},[138,1831,1832],{"class":140,"line":845},[138,1833,157],{"class":150},[138,1835,1836],{"class":140,"line":863},[138,1837,1838],{"class":194},"    \u002F\u002F 程序从 main 函数开始执行，下面的语句会按顺序运行。\n",[138,1840,1841,1844,1846,1848],{"class":140,"line":870},[138,1842,1843],{"class":150},"    RobotState state ",[138,1845,204],{"class":144},[138,1847,1721],{"class":318},[138,1849,910],{"class":150},[138,1851,1852,1855],{"class":140,"line":876},[138,1853,1854],{"class":318},"    handle_state",[138,1856,1857],{"class":150},"(state);\n",[138,1859,1860],{"class":140,"line":881},[138,1861,188],{"emptyLinePlaceholder":187},[138,1863,1864],{"class":140,"line":886},[138,1865,1866],{"class":194},"    \u002F\u002F 返回 0 表示程序正常结束。\n",[138,1868,1869,1871,1873],{"class":140,"line":895},[138,1870,566],{"class":144},[138,1872,569],{"class":325},[138,1874,529],{"class":150},[138,1876,1877],{"class":140,"line":900},[138,1878,577],{"class":150},[14,1880,1881,583],{},[29,1882,582],{},[129,1884,1887],{"className":1885,"code":1886,"language":589},[587],"execute task\n",[18,1888,1886],{"__ignoreMap":134},[14,1890,1891,1892,1895,1896,1899,1900,1903,1904,1907],{},"如果用 ",[18,1893,1894],{},"int state = 1","，读代码的人不知道 ",[18,1897,1898],{},"1"," 是什么；如果用 ",[18,1901,1902],{},"enum class RobotState::Running","，语义直接写在类型里，而且不会和其他枚举的 ",[18,1905,1906],{},"Running"," 混用。",[10,1909,1910],{"id":1910},"常见错误",[14,1912,1913],{},[29,1914,1915],{},"错误 1：直接拿 enum class 值做数组下标",[129,1917,1919],{"className":131,"code":1918,"language":133,"meta":134,"style":134},"enum class Color { red, green, blue };\nint counts[3];\ncounts[Color::red];  \u002F\u002F ❌ 编译错误！不会隐式转换\n",[18,1920,1921,1943,1956],{"__ignoreMap":134},[138,1922,1923,1925,1927,1929,1931,1933,1935,1937,1939,1941],{"class":140,"line":141},[138,1924,20],{"class":144},[138,1926,147],{"class":144},[138,1928,357],{"class":318},[138,1930,322],{"class":150},[138,1932,39],{"class":325},[138,1934,328],{"class":150},[138,1936,331],{"class":325},[138,1938,328],{"class":150},[138,1940,336],{"class":325},[138,1942,339],{"class":150},[138,1944,1945,1947,1950,1953],{"class":140,"line":154},[138,1946,380],{"class":144},[138,1948,1949],{"class":150}," counts[",[138,1951,1952],{"class":325},"3",[138,1954,1955],{"class":150},"];\n",[138,1957,1958,1961,1963,1966],{"class":140,"line":160},[138,1959,1960],{"class":150},"counts[",[138,1962,484],{"class":318},[138,1964,1965],{"class":150},"::red];",[138,1967,1968],{"class":194},"  \u002F\u002F ❌ 编译错误！不会隐式转换\n",[14,1970,1971,1972,1975],{},"正确做法：",[18,1973,1974],{},"counts[static_cast\u003Cint>(Color::red)]","，或者在这种场景考虑用 map。",[14,1977,1978],{},[29,1979,1980],{},"错误 2：忘记写作用域前缀",[129,1982,1984],{"className":131,"code":1983,"language":133,"meta":134,"style":134},"enum class Status { Running, Stopped };\nStatus s = Running;  \u002F\u002F ❌ 编译错误！缺少 Status::\n",[18,1985,1986,2005],{"__ignoreMap":134},[138,1987,1988,1990,1992,1994,1996,1998,2000,2003],{"class":140,"line":141},[138,1989,20],{"class":144},[138,1991,147],{"class":144},[138,1993,631],{"class":318},[138,1995,322],{"class":150},[138,1997,1906],{"class":325},[138,1999,328],{"class":150},[138,2001,2002],{"class":325},"Stopped",[138,2004,339],{"class":150},[138,2006,2007,2010,2012,2015],{"class":140,"line":154},[138,2008,2009],{"class":150},"Status s ",[138,2011,204],{"class":144},[138,2013,2014],{"class":150}," Running;",[138,2016,2017],{"class":194},"  \u002F\u002F ❌ 编译错误！缺少 Status::\n",[14,2019,1971,2020],{},[18,2021,2022],{},"Status s = Status::Running;",[14,2024,2025],{},[29,2026,2027],{},"错误 3：switch 中混用不同 enum class 的值",[129,2029,2031],{"className":131,"code":2030,"language":133,"meta":134,"style":134},"switch (status)\n{\n    case Status::Running:  \u002F\u002F ✅ 正确\n    case Machine::Running: \u002F\u002F ❌ 编译错误！不同枚举类型\n        break;\n}\n",[18,2032,2033,2041,2045,2062,2078,2085],{"__ignoreMap":134},[138,2034,2035,2038],{"class":140,"line":141},[138,2036,2037],{"class":144},"switch",[138,2039,2040],{"class":150}," (status)\n",[138,2042,2043],{"class":140,"line":154},[138,2044,157],{"class":150},[138,2046,2047,2050,2052,2054,2056,2059],{"class":140,"line":160},[138,2048,2049],{"class":144},"    case",[138,2051,631],{"class":318},[138,2053,1180],{"class":150},[138,2055,1906],{"class":318},[138,2057,2058],{"class":150},":",[138,2060,2061],{"class":194},"  \u002F\u002F ✅ 正确\n",[138,2063,2064,2066,2069,2071,2073,2075],{"class":140,"line":166},[138,2065,2049],{"class":144},[138,2067,2068],{"class":318}," Machine",[138,2070,1180],{"class":150},[138,2072,1906],{"class":318},[138,2074,2058],{"class":150},[138,2076,2077],{"class":194}," \u002F\u002F ❌ 编译错误！不同枚举类型\n",[138,2079,2080,2083],{"class":140,"line":172},[138,2081,2082],{"class":144},"        break",[138,2084,529],{"class":150},[138,2086,2087],{"class":140,"line":178},[138,2088,577],{"class":150},[14,2090,2091],{},"正确做法：switch 中 case 必须和 switch 表达式是同一枚举类型。",[10,2093,2094],{"id":2094},"使用建议",[23,2096,2097,2108,2117,2126],{},[26,2098,2099,2107],{},[29,2100,2101,2102,2104,2105],{},"永远用 ",[18,2103,5],{}," 而不是旧的 ",[18,2106,20],{},"：类型安全、作用域清晰。",[26,2109,2110,2113,2114,2116],{},[29,2111,2112],{},"可以指定底层类型","：嵌入式场景用 ",[18,2115,1580],{}," 节省空间。",[26,2118,2119,2125],{},[29,2120,2121,2122],{},"需要整数值时显式用 ",[18,2123,2124],{},"static_cast","：不要指望隐式转换。",[26,2127,2128,2131,2132,2135],{},[29,2129,2130],{},"enum class 仍然是整数，可以 switch","：配合 ",[18,2133,2134],{},"default"," 分支处理未知值。",[10,2137,2138],{"id":2138},"小结",[71,2140,2141,2149,2155,2161],{},[26,2142,2143,2145,2146,83],{},[18,2144,5],{}," 避免名字污染，枚举值通过 ",[18,2147,2148],{},"枚举名::值",[26,2150,2151,2152,2154],{},"不会隐式转换为整数，需要 ",[18,2153,2124],{}," 显式转换。",[26,2156,2157,2158,100],{},"可以指定底层类型（",[18,2159,2160],{},"enum class E : uint8_t",[26,2162,2163],{},"适用于表示状态、等级、选项等有限的离散取值集合。",[2165,2166,2167],"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":134,"searchDepth":154,"depth":154,"links":2169},[2170,2171,2172,2173,2174,2175,2176,2181,2182,2183,2186,2187,2188],{"id":12,"depth":154,"text":12},{"id":64,"depth":154,"text":64},{"id":103,"depth":154,"text":104},{"id":110,"depth":154,"text":110},{"id":127,"depth":154,"text":127},{"id":210,"depth":154,"text":210},{"id":283,"depth":154,"text":283,"children":2177},[2178,2179,2180],{"id":287,"depth":160,"text":288},{"id":594,"depth":160,"text":595},{"id":1038,"depth":160,"text":1039},{"id":582,"depth":154,"text":582},{"id":1522,"depth":154,"text":1522},{"id":1619,"depth":154,"text":1620,"children":2184},[2185],{"id":1628,"depth":160,"text":1629},{"id":1910,"depth":154,"text":1910},{"id":2094,"depth":154,"text":2094},{"id":2138,"depth":154,"text":2138},"2000-0400","2023-10-05","2023-10-05-cplusplus-jiao-xue","\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue","Cplusplus教学","md",false,{},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0400-enum-class",{"title":5,"description":134},"wiki\u002F2023-10-05-Cplusplus教学\u002F2000-0400-enum-class","HcHXAEGQmfh-EcqCRwLd2oGCvK-m8-c1Qj2q_b6jpTg",[2202,2208,2213,2218,2223,2228,2233,2238,2243,2248,2253,2258,2263,2268,2273,2278,2283,2288,2293,2298,2303,2308,2313,2318,2323,2328,2333,2338,2343,2348,2353,2358,2363,2368,2373,2378,2383,2384,2389,2394,2399,2404,2409,2414,2419,2424,2429,2434,2439,2444,2449,2454,2459,2464,2469,2474,2479,2484,2489,2494,2499,2504,2509,2514,2519,2524,2529,2534,2539,2544,2549,2554,2559,2564,2569,2574,2579,2584],{"path":2203,"stem":2204,"title":2205,"date":2190,"chapterOrder":2206,"chapterDepth":2207,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0100-c-kai-fa-huan-jing-da-jian-yu-ce-shi","wiki\u002F2023-10-05-Cplusplus教学\u002F0100-C++开发环境搭建与测试","C++开发环境搭建与测试","0100",0,{"path":2209,"stem":2210,"title":2211,"date":2190,"chapterOrder":2212,"chapterDepth":2207,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0200-c-ji-chu-chu-shi","wiki\u002F2023-10-05-Cplusplus教学\u002F0200-C++基础初识","C++基础初识","0200",{"path":2214,"stem":2215,"title":2216,"date":2190,"chapterOrder":2217,"chapterDepth":2207,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0300-shu-ju-lei-xing-yu-shu-ju-cun-fang","wiki\u002F2023-10-05-Cplusplus教学\u002F0300-数据类型与数据存放","数据类型与数据存放","0300",{"path":2219,"stem":2220,"title":2221,"date":2190,"chapterOrder":2222,"chapterDepth":2207,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0400-shu-ru-shu-chu","wiki\u002F2023-10-05-Cplusplus教学\u002F0400-输入输出","输入输出","0400",{"path":2224,"stem":2225,"title":2226,"date":2190,"chapterOrder":2227,"chapterDepth":2207,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0500-yun-suan-fu","wiki\u002F2023-10-05-Cplusplus教学\u002F0500-运算符","运算符","0500",{"path":2229,"stem":2230,"title":2231,"date":2190,"chapterOrder":2232,"chapterDepth":2207,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0600-cheng-xu-liu-cheng-jie-gou","wiki\u002F2023-10-05-Cplusplus教学\u002F0600-程序流程结构","程序流程结构","0600",{"path":2234,"stem":2235,"title":2236,"date":2190,"chapterOrder":2237,"chapterDepth":2207,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0700-shu-zu","wiki\u002F2023-10-05-Cplusplus教学\u002F0700-数组","数组","0700",{"path":2239,"stem":2240,"title":2241,"date":2190,"chapterOrder":2242,"chapterDepth":2207,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0800-han-shu-yu-tou-wen-jian","wiki\u002F2023-10-05-Cplusplus教学\u002F0800-函数与头文件","函数与头文件","0800",{"path":2244,"stem":2245,"title":2246,"date":2190,"chapterOrder":2247,"chapterDepth":2207,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0900-zhi-zhen","wiki\u002F2023-10-05-Cplusplus教学\u002F0900-指针","指针","0900",{"path":2249,"stem":2250,"title":2251,"date":2190,"chapterOrder":2252,"chapterDepth":2207,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1000-jie-gou-ti-yu-gong-yong-ti","wiki\u002F2023-10-05-Cplusplus教学\u002F1000-结构体与共用体","结构体与共用体","1000",{"path":2254,"stem":2255,"title":2256,"date":2190,"chapterOrder":2257,"chapterDepth":2207,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1100-nei-cun-fen-qu-yu-sheng-ming-zhou-qi","wiki\u002F2023-10-05-Cplusplus教学\u002F1100-内存分区与生命周期","内存分区与生命周期","1100",{"path":2259,"stem":2260,"title":2261,"date":2190,"chapterOrder":2262,"chapterDepth":2207,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1200-yin-yong","wiki\u002F2023-10-05-Cplusplus教学\u002F1200-引用","引用","1200",{"path":2264,"stem":2265,"title":2266,"date":2190,"chapterOrder":2267,"chapterDepth":2207,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1300-han-shu-ti-gao-yu-ming-ming-kong-jian","wiki\u002F2023-10-05-Cplusplus教学\u002F1300-函数提高与命名空间","函数提高与命名空间","1300",{"path":2269,"stem":2270,"title":2271,"date":2190,"chapterOrder":2272,"chapterDepth":141,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0100-feng-zhuang","wiki\u002F2023-10-05-Cplusplus教学\u002F1400-0100-封装","封装","1400-0100",{"path":2274,"stem":2275,"title":2276,"date":2190,"chapterOrder":2277,"chapterDepth":141,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0200-dui-xiang-chu-shi-hua-he-qing-li","wiki\u002F2023-10-05-Cplusplus教学\u002F1400-0200-对象初始化和清理","对象初始化和清理","1400-0200",{"path":2279,"stem":2280,"title":2281,"date":2190,"chapterOrder":2282,"chapterDepth":141,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0300-dui-xiang-mo-xing-yu-this-zhi-zhen","wiki\u002F2023-10-05-Cplusplus教学\u002F1400-0300-对象模型与this指针","对象模型与this指针","1400-0300",{"path":2284,"stem":2285,"title":2286,"date":2190,"chapterOrder":2287,"chapterDepth":141,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0400-you-yuan-yu-yun-suan-fu-zhong-zai","wiki\u002F2023-10-05-Cplusplus教学\u002F1400-0400-友元与运算符重载","友元与运算符重载","1400-0400",{"path":2289,"stem":2290,"title":2291,"date":2190,"chapterOrder":2292,"chapterDepth":141,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0500-ji-cheng","wiki\u002F2023-10-05-Cplusplus教学\u002F1400-0500-继承","继承","1400-0500",{"path":2294,"stem":2295,"title":2296,"date":2190,"chapterOrder":2297,"chapterDepth":141,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0600-duo-tai","wiki\u002F2023-10-05-Cplusplus教学\u002F1400-0600-多态","多态","1400-0600",{"path":2299,"stem":2300,"title":2301,"date":2190,"chapterOrder":2302,"chapterDepth":2207,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-lei-he-dui-xiang","wiki\u002F2023-10-05-Cplusplus教学\u002F1400-类和对象","类和对象","1400",{"path":2304,"stem":2305,"title":2306,"date":2190,"chapterOrder":2307,"chapterDepth":2207,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1500-wen-jian-cao-zuo","wiki\u002F2023-10-05-Cplusplus教学\u002F1500-文件操作","文件操作","1500",{"path":2309,"stem":2310,"title":2311,"date":2190,"chapterOrder":2312,"chapterDepth":2207,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1600-yi-chang-chu-li-yu-cuo-wu-ma","wiki\u002F2023-10-05-Cplusplus教学\u002F1600-异常处理与错误码","异常处理","1600",{"path":2314,"stem":2315,"title":2316,"date":2190,"chapterOrder":2317,"chapterDepth":2207,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1700-mu-ban","wiki\u002F2023-10-05-Cplusplus教学\u002F1700-模板","模板","1700",{"path":2319,"stem":2320,"title":2321,"date":2190,"chapterOrder":2322,"chapterDepth":141,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0100-stl-chu-shi","wiki\u002F2023-10-05-Cplusplus教学\u002F1800-0100-STL初识","STL初识","1800-0100",{"path":2324,"stem":2325,"title":2326,"date":2190,"chapterOrder":2327,"chapterDepth":141,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0200-std-array","wiki\u002F2023-10-05-Cplusplus教学\u002F1800-0200-std-array","std::array","1800-0200",{"path":2329,"stem":2330,"title":2331,"date":2190,"chapterOrder":2332,"chapterDepth":141,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0300-string-rong-qi","wiki\u002F2023-10-05-Cplusplus教学\u002F1800-0300-string容器","string容器","1800-0300",{"path":2334,"stem":2335,"title":2336,"date":2190,"chapterOrder":2337,"chapterDepth":141,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0400-vector-yu-deque-rong-qi","wiki\u002F2023-10-05-Cplusplus教学\u002F1800-0400-vector与deque容器","vector与deque容器","1800-0400",{"path":2339,"stem":2340,"title":2341,"date":2190,"chapterOrder":2342,"chapterDepth":141,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0500-stack-queue-list-rong-qi","wiki\u002F2023-10-05-Cplusplus教学\u002F1800-0500-stack-queue-list容器","stack \u002F queue \u002F list 容器","1800-0500",{"path":2344,"stem":2345,"title":2346,"date":2190,"chapterOrder":2347,"chapterDepth":141,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0600-set-map-rong-qi","wiki\u002F2023-10-05-Cplusplus教学\u002F1800-0600-set-map容器","set \u002F map 容器","1800-0600",{"path":2349,"stem":2350,"title":2351,"date":2190,"chapterOrder":2352,"chapterDepth":141,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0700-han-shu-dui-xiang-yu-wei-ci","wiki\u002F2023-10-05-Cplusplus教学\u002F1800-0700-函数对象与谓词","函数对象与谓词","1800-0700",{"path":2354,"stem":2355,"title":2356,"date":2190,"chapterOrder":2357,"chapterDepth":141,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0800-chang-yong-suan-fa","wiki\u002F2023-10-05-Cplusplus教学\u002F1800-0800-常用算法","常用算法","1800-0800",{"path":2359,"stem":2360,"title":2361,"date":2190,"chapterOrder":2362,"chapterDepth":2207,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-stl-ti-gao-bian-cheng","wiki\u002F2023-10-05-Cplusplus教学\u002F1800-STL提高编程","STL提高编程","1800",{"path":2364,"stem":2365,"title":2366,"date":2190,"chapterOrder":2367,"chapterDepth":2207,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1900-c-lei-xing-zhuan-huan","wiki\u002F2023-10-05-Cplusplus教学\u002F1900-C++类型转换","C++类型转换","1900",{"path":2369,"stem":2370,"title":2371,"date":2190,"chapterOrder":2372,"chapterDepth":141,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0100-auto","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-0100-auto","auto","2000-0100",{"path":2374,"stem":2375,"title":2376,"date":2190,"chapterOrder":2377,"chapterDepth":141,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0200-nullptr","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-0200-nullptr","nullptr","2000-0200",{"path":2379,"stem":2380,"title":2381,"date":2190,"chapterOrder":2382,"chapterDepth":141,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0300-using","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-0300-using","using","2000-0300",{"path":2197,"stem":2199,"title":5,"date":2190,"chapterOrder":2189,"chapterDepth":141,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},{"path":2385,"stem":2386,"title":2387,"date":2190,"chapterOrder":2388,"chapterDepth":141,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0500-fan-wei-for-xun-huan","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-0500-范围for循环","范围 for 循环","2000-0500",{"path":2390,"stem":2391,"title":2392,"date":2190,"chapterOrder":2393,"chapterDepth":141,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0600-jie-gou-hua-bang-ding","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-0600-结构化绑定","结构化绑定","2000-0600",{"path":2395,"stem":2396,"title":2397,"date":2190,"chapterOrder":2398,"chapterDepth":141,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0700-constexpr","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-0700-constexpr","constexpr","2000-0700",{"path":2400,"stem":2401,"title":2402,"date":2190,"chapterOrder":2403,"chapterDepth":141,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0800-raii","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-0800-RAII","RAII","2000-0800",{"path":2405,"stem":2406,"title":2407,"date":2190,"chapterOrder":2408,"chapterDepth":141,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0900-zhi-neng-zhi-zhen","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-0900-智能指针","智能指针","2000-0900",{"path":2410,"stem":2411,"title":2412,"date":2190,"chapterOrder":2413,"chapterDepth":141,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1000-you-zhi-yin-yong-he-yi-dong-yu-yi","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-1000-右值引用和移动语义","右值引用和移动语义","2000-1000",{"path":2415,"stem":2416,"title":2417,"date":2190,"chapterOrder":2418,"chapterDepth":141,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1100-lambda-biao-da-shi","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-1100-Lambda表达式","Lambda 表达式","2000-1100",{"path":2420,"stem":2421,"title":2422,"date":2190,"chapterOrder":2423,"chapterDepth":141,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1200-std-function","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-1200-std-function","std::function","2000-1200",{"path":2425,"stem":2426,"title":2427,"date":2190,"chapterOrder":2428,"chapterDepth":141,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1300-std-bind","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-1300-std-bind","std::bind","2000-1300",{"path":2430,"stem":2431,"title":2432,"date":2190,"chapterOrder":2433,"chapterDepth":141,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1400-std-optional","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-1400-std-optional","std::optional","2000-1400",{"path":2435,"stem":2436,"title":2437,"date":2190,"chapterOrder":2438,"chapterDepth":141,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1500-std-variant","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-1500-std-variant","std::variant","2000-1500",{"path":2440,"stem":2441,"title":2442,"date":2190,"chapterOrder":2443,"chapterDepth":141,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1600-std-span","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-1600-std-span","std::span","2000-1600",{"path":2445,"stem":2446,"title":2447,"date":2190,"chapterOrder":2448,"chapterDepth":141,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1700-std-format-print","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-1700-std-format-print","std::format \u002F std::print","2000-1700",{"path":2450,"stem":2451,"title":2452,"date":2190,"chapterOrder":2453,"chapterDepth":141,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1800-std-chrono","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-1800-std-chrono","std::chrono","2000-1800",{"path":2455,"stem":2456,"title":2457,"date":2190,"chapterOrder":2458,"chapterDepth":154,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-0100-std-thread","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-0100-std-thread","std::thread 与 join","2000-1900-0100",{"path":2460,"stem":2461,"title":2462,"date":2190,"chapterOrder":2463,"chapterDepth":154,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-0200-mutex-lock-guard","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-0200-mutex-lock-guard","mutex 与 lock_guard","2000-1900-0200",{"path":2465,"stem":2466,"title":2467,"date":2190,"chapterOrder":2468,"chapterDepth":154,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-0300-std-atomic","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-0300-std-atomic","std::atomic","2000-1900-0300",{"path":2470,"stem":2471,"title":2472,"date":2190,"chapterOrder":2473,"chapterDepth":154,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-0400-condition-variable","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-0400-condition-variable","condition_variable","2000-1900-0400",{"path":2475,"stem":2476,"title":2477,"date":2190,"chapterOrder":2478,"chapterDepth":141,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-bing-fa-bian-cheng","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-并发编程","并发编程","2000-1900",{"path":2480,"stem":2481,"title":2482,"date":2190,"chapterOrder":2483,"chapterDepth":141,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-2000-std-filesystem","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-2000-std-filesystem","std::filesystem","2000-2000",{"path":2485,"stem":2486,"title":2487,"date":2190,"chapterOrder":2488,"chapterDepth":141,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-2100-modules-jian-jie","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-2100-modules简介","modules 简介","2000-2100",{"path":2490,"stem":2491,"title":2492,"date":2190,"chapterOrder":2493,"chapterDepth":2207,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-xian-dai-c","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-现代C++","现代C++","2000",{"path":2495,"stem":2496,"title":2497,"date":2190,"chapterOrder":2498,"chapterDepth":154,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0100-ding-shi-qi-yu-yi-bu-io","wiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0100-定时器与异步IO","定时器与异步 IO","2100-0100-0100",{"path":2500,"stem":2501,"title":2502,"date":2190,"chapterOrder":2503,"chapterDepth":154,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0200-boost-asio-ji-chu","wiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0200-Boost.Asio基础","Boost.Asio 基础","2100-0100-0200",{"path":2505,"stem":2506,"title":2507,"date":2190,"chapterOrder":2508,"chapterDepth":154,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0300-chuan-kou-tong-xin","wiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0300-串口通信","串口通信","2100-0100-0300",{"path":2510,"stem":2511,"title":2512,"date":2190,"chapterOrder":2513,"chapterDepth":154,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0400-tcp-tong-xin","wiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0400-TCP通信","TCP 通信","2100-0100-0400",{"path":2515,"stem":2516,"title":2517,"date":2190,"chapterOrder":2518,"chapterDepth":154,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0500-udp-tong-xin","wiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0500-UDP通信","UDP 通信","2100-0100-0500",{"path":2520,"stem":2521,"title":2522,"date":2190,"chapterOrder":2523,"chapterDepth":154,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0600-ji-qi-ren-gong-cheng-xie-fa-yu-ros2-ji-cheng","wiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0600-机器人工程写法与ROS2集成","机器人工程写法与 ROS2 集成","2100-0100-0600",{"path":2525,"stem":2526,"title":2527,"date":2190,"chapterOrder":2528,"chapterDepth":141,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-boost-asio-yi-bu-io-ku","wiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-Boost.Asio异步IO库","Boost.Asio异步IO库","2100-0100",{"path":2530,"stem":2531,"title":2532,"date":2190,"chapterOrder":2533,"chapterDepth":141,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0200-eigen-xian-xing-dai-shu-ku","wiki\u002F2023-10-05-Cplusplus教学\u002F2100-0200-Eigen线性代数库","Eigen线性代数库","2100-0200",{"path":2535,"stem":2536,"title":2537,"date":2190,"chapterOrder":2538,"chapterDepth":141,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0300-opencv-ji-suan-ji-shi-jue-ku","wiki\u002F2023-10-05-Cplusplus教学\u002F2100-0300-OpenCV计算机视觉库","OpenCV计算机视觉库","2100-0300",{"path":2540,"stem":2541,"title":2542,"date":2190,"chapterOrder":2543,"chapterDepth":141,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0400-pcl-dian-yun-ku","wiki\u002F2023-10-05-Cplusplus教学\u002F2100-0400-PCL点云库","PCL点云库","2100-0400",{"path":2545,"stem":2546,"title":2547,"date":2190,"chapterOrder":2548,"chapterDepth":141,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0500-sophus-li-qun-li-dai-shu-ku","wiki\u002F2023-10-05-Cplusplus教学\u002F2100-0500-Sophus李群李代数库","Sophus 李群李代数库","2100-0500",{"path":2550,"stem":2551,"title":2552,"date":2190,"chapterOrder":2553,"chapterDepth":2207,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-chang-yong-ku","wiki\u002F2023-10-05-Cplusplus教学\u002F2100-常用库","常用库学习","2100",{"path":2555,"stem":2556,"title":2557,"date":2190,"chapterOrder":2558,"chapterDepth":141,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-0100-cmakepresets-yu-gou-jian-an-zhuang","wiki\u002F2023-10-05-Cplusplus教学\u002F2200-0100-CMakePresets与构建安装","CMakePresets与构建安装","2200-0100",{"path":2560,"stem":2561,"title":2562,"date":2190,"chapterOrder":2563,"chapterDepth":141,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-0200-ding-ceng-cmake-yu-gong-gong-bian-yi-xuan-xiang","wiki\u002F2023-10-05-Cplusplus教学\u002F2200-0200-顶层CMake与公共编译选项","顶层CMake与公共编译选项","2200-0200",{"path":2565,"stem":2566,"title":2567,"date":2190,"chapterOrder":2568,"chapterDepth":141,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-0300-src-yu-lib-mo-kuai-cmake-xiang-jie","wiki\u002F2023-10-05-Cplusplus教学\u002F2200-0300-src与lib模块CMake详解","src与lib模块CMake详解","2200-0300",{"path":2570,"stem":2571,"title":2572,"date":2190,"chapterOrder":2573,"chapterDepth":141,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-0400-di-san-fang-ku-yi-lai-xie-fa","wiki\u002F2023-10-05-Cplusplus教学\u002F2200-0400-第三方库依赖写法","第三方库依赖写法","2200-0400",{"path":2575,"stem":2576,"title":2577,"date":2190,"chapterOrder":2578,"chapterDepth":141,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-0500-mu-ban-kuo-zhan-yu-chang-jian-wen-ti","wiki\u002F2023-10-05-Cplusplus教学\u002F2200-0500-模板扩展与常见问题","模板扩展与常见问题","2200-0500",{"path":2580,"stem":2581,"title":2582,"date":2190,"chapterOrder":2583,"chapterDepth":2207,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":2195},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-cmake-gong-cheng-mu-ban","wiki\u002F2023-10-05-Cplusplus教学\u002F2200-CMake工程模板","CMake工程模板","2200",{"path":2192,"stem":2585,"title":2586,"date":2190,"chapterOrder":2587,"chapterDepth":2207,"docKey":2191,"docRoot":2192,"docTitle":2193,"isWikiDoc":187,"isWikiIndex":187},"wiki\u002F2023-10-05-Cplusplus教学\u002Findex","C\u002FC++教程",null,1784505234122]