1.2 KiB
1.2 KiB
-
變數宣告的方式變了
- Old:
int a = 3; - New:
int a {3};
- Old:
-
if裡面可以宣告變數if (auto a {3}; a > b) { // Do something } -
unique_ptr: 無法複製的指標- 傳統方法:
unique_ptr<uint8_t[]> buffer = new uint8_t[256]; - 新方法:
auto buffer = std::make_unique<uint8_t[]>(256);
- 傳統方法:
-
share_ptr: 可以複製,但要避免循環參考問題 -
透過refernce傳遞array參數
- 考慮一個帶有長度的陣列要傳到function裡面,但是又希望在function面可以指定陣列長度
double value[] { 1.0, 2.0, 3.0 }; // Error! double value[] { 1.0, 2.0, 3.0, 4.0, 5.0 }; // Pass! double average(const double (&array)[5]) { ... }
- 考慮一個帶有長度的陣列要傳到function裡面,但是又希望在function面可以指定陣列長度
-
用
std::string_view代替const std::string&。