17 February 2023

C++ 核心指南目录

“Avoid [] parameters, prefer span”

理由

用指针访问数组,会导致数组的大小信息丢失。会导致一些列相关的错误。用 span 保留数组大小信息。

例子

void f(int[]);          // not recommended

void f(int*);           // not recommended for multiple objects
                        // (a pointer should point to a single object, do not subscript)

void f(gsl::span<int>); // good, recommended

强化

  • 标记 [] 参数,改用 span